Skip to main content

Full text of "tektronix :: plot10 :: 070-2244-00 Plot 10 Advanced Graphing II Users Manual Feb82"

See other formats


TBktroniX' 



® 

COMMITTED TO EXCELLENCE 



Please Check for 

CHANGE INFORMATION 

at the Rear of this Manual 



PLOT 1 

4010A02 

ADVANCED GRAPHING II 

USER'S MANUAL 



Tektronix, Inc. 

P.O. Box 500 

Beaverton, Oregon 97077 

MANUAL PART NO. 070-2244-00 First Printing MAR 1 977 

PRODUCT GROUP 1 1 Revised FEB 1 982 



SUPPORT POLICY 

This software product is designated Support Category B, as 
shown on the applicable software data sheet existing at the 
time of order. Tektronix' sole obligation shall be to correct 
defects (non-conformance of the software to the data sheet) 
as described below, without additional charge.* 

During the one (1) year period following delivery, if the 
customer encounters a problem with the software which his 
diagnosis indicates is caused by a software defect, the 
customer may submit a Software Performance Report (SPR) to 
Tektronix. Tektronix will respond to problems reported in 
SPRs which are caused by defects in the current unaltered 
release of the software via the Maintenance Periodical for the 
software, which reports code corrections, temporary 
corrections, generally useful emergency by-pass and/or no- 
tice of the availability of corrected code. Software updates, if 
any, released by Tektronix during the one (1) year period, will 
be provided to the customer on Tektronix' standard distribu- 
tion media as specified in the applicable data sheet. The 
customer will be charged only for the media on which such 
updates are provided, unless otherwise stated in the applica- 
ble data sheet, at Tektronix' then current media prices. 



*ln addition to the locations within the contiguous forty-eight 
(48) United States and the District of Columbia, this service is 
available in those areas where Tektronix has software support 
capability. 



Copyright © 1977 by Tektronix, Inc., Beaverton, Oregon. 
Printed in the United States of America. All rights reserved. 
Contents of this publication may not be reproduced in any 
form without permission of Tektronix, Inc. 

This instrument, in whole or in part, may be protected by one 
or more U.S. or foreign patents or patent applications. 
Information provided on request by Tektronix, Inc., P.O. Box 
500, Beaverton, Oregon 97077. 

TEKTRONIX is a registered trademark of Tektronix, Inc. 



4010A02 PLOT 10 ADVANCED GRAPHING II USER MANUAL 



INTRODUCTION 

4010A02 PLOT 10 Advanced Graphing II Is designed for use with the 4010A01 
PLOT 10 Terminal Control System. It can be used with (or without) the 
4662A01 PLOT 10 Utility Routines. 

Advanced Graphing II is the latest addition to the Tektronix PLOT 10 
family of terminal software. It is the result of more than four years 
of experience with the original Advanced Graphing software, and is 
designed to provide the terminal user with a comprehensive capability 
to depict his data in the form of a graph. 

The package consists of a number of FORTRAN subroutines which are care- 
ful ly designed to combine simplicity of use with a highly flexible capa- 
bility to tailor the size, shape, and format of the graph as it is dis- 
played on the screen. Three calls to Advanced Graphing II subroutines 
are sufficient to create a complete, full-screen graph using the full 
set of default values. More than 40 small subroutines available to the 
user permit him to alter any of the details of graph construction to 
obtain the desired appearance. 

For those who have never considered the creation of a graph from an 
analytical point of view, it may be startling to consider the possibility 
of more than 40 elements in a graph to change. That is where Tektronix's 
years of experience In the field of graphing can help. We recommend 
that you start at the simple end of the scale, and let the careful ly 
considered default conditions operate. Then, as the parts of a graph 
and the capabilities of the package become more familiar, try to manipu- 
late some of the more complex and subtle capabilities of Advanced 
Graphing II. 

The Primer section of the manual provides the most fundamental informa- 
tion for graph production, and sections 2 and 3 provide more advanced 
information for varying the graph. For the most part, there Is a simple 
way to perform nearly every task. A table of parameters is available to 
change each element of the graph individually, but where several changes 
are needed to perform one task, a single routine is generally available 
to specify all the parameters. 

Appendix B contains descriptions of routines which allow incorporation 
of non-standard data arrays, lines, symbols, and labels. These routines 
are "dummies" only and must be written by the user. 

Advanced Grapliing II provides the tools; they need only be put to use. 



4010A02 USER 



Introduction 



CONTENTS 



Page 



Section 1: The Primer 

1.1 Creating a Basic Grapin 

1.2 Multiple Curves 

1.3 Introduction to Advanced Plots 



1-2 
1-4 
1-6 



Section 2: 



Basic 

2.1 

2.2 



2.3 



2.4 
2.5 

2.6 
2.7 
2.8 
2.9 



2.10 
2.11 
2.12 
2.13 



Routines 
Definition of Terms 
Data Structures 

2.2.1 Standard Long Form 

2.2.2 Short Linear Form 

2.2.3 Short Calendar Form 

2.2.4 Non-Standard Long Form 
Basic Plot Creating Routines 

2.3.1 Advanced Graphing II Initialization 
Subroutine - BINITT 

2.3.2 Table Checking Subroutine - CHECK 

2.3.3 Graph Displaying Subroutine — DSPLAY 

2.3.4 Curve Plotting Subroutine - CPLOT 
Changing Standard Graph Form 

Multiple Curves with Different Scales — 

DINITX, DINITY 

Logarithmic Plots 

Calendar Plotting 

Bar Charts - HBARST, VBARST 

Screen Window Location 

2.9.1 Easy Method 

2.9.2 Screen Coordinate Method 
Multiple Graphs on the Same Page 
Additional Labels and Titles 
Framing the Data Window 
Frequently Used Routines 

2.13.1 Window Framing Subroutine - FRAME 

2.13.2 Horizontal Labeling Subroutines — H LAB EL, 
HSTRIN, NOT ATE 

2.13.3 Vertical Labeling Subroutine -VLABEL, 
VSTRIN 

2.13.4 Label Justification Subroutine — JUSTE R 



2-1 
2-3 
2-3 
2-3 
2-3 
2-4 
2-5 

2-7 

2-8 

2-9 

2-10 

2-11 

2-13 
2-17 
2-18 
2-20 
2-22 
2-22 
2-23 
2-23 
2-25 
2-27 
2-29 
2-29 

2-29 

2-32 
2-34 



4010A02 USER 



Section 3: Description of AG-II Table Controlling Routines 

3.1 Individual Table Setting Routines 3-5 

3.1.1 Line Type -CLINE 3-6 

3.1.2 Data Point or Bar Chart Symbols - CSYMBL 3-9 

3.1.3 Sumbol Increments - CSTEPS 3-13 

3.1.4 Machine Infinity -CINFIN 3-15 

3.1.5 Numberof Data Points -CNPTS 3-16 

3.1.6 Increments between Line Connected 

Data Poi nts - CST E P L 3-18 

3.1.7 Numberof Points in Plot- CNUMBR 3-20 

3.1.8 Symbol Size -CSIZES 3-20 

3.1.9 Data Line Size (Width) - CSIZEL 3-22 

3.2 X and Y Axis Variables and Setting Routines 3-23 

3.2.1 Neat Tic Marks -CXNEAT, CYNEAT 3-24 

3.2.2 Zero Suppresison - CXZERO, CYZERO 3-26 

3.2.3 Axis Location -CXLOC, CYLOC 3-28 

3.2.4 Tic Mark Label Types - CXLAB, CYLAB 3-32 

3.2.5 Tic Mark Density - CXDEN, CYDEN 3-34 

3.2.6 Major Tic Mark Intervals - CXTICS, CYTICS 3-38 

3.2.7 Tic Mark Length - CXLEN, CYLEN 3-40 

3.2.8 Major Tic Mark Form - CXFRM, CYFRM 3-42 

3.2.9 Minor Tic Mark Intervals and Form — 

CXMTCS, CYMTCS, CXMFRM, and CYMFRM 3-44 

3.2.10 Decimal Places in Labels -CXDEC, CYDEC 3-47 

3.2.1 1 Data Minimum and Maximum - CXDMIN, 

CYDMIN, CXDMAX, and CYDMAX 3-48 

3.2.12 Screen Location - CXSMIN, CYSMIN, 

CXSMAX, CYSMAX, and PLACE 3-50 

3.2.13 Data and Transformation Type — 

CXTYPE, CYTYPE 3-55 

3.2.14 Least Significatn Digit in Labels— 

CXLSIG, CYLSIG 3-57 

3.2.15 Tic Mark Label Width - CXWDTH, CYWDTH 3-58 

3.2.16 Remote Exponent Value - CXEPON, CYEPON 3-60 

3.2.17 Label Frequency - CXSTEP, CYSTEP 3-60 

3.2.18 Staggered Labels - CXSTAG, CYSTAG 3-61 

3.2.19 Remote Exponent Type - CXETYP, CYETYP 3-62 

3.2.20 Major Tic Mark Starting and Ending Locations — 
CXBEG, CXEND, CYBEG, CYEND 3-64 

3.2.21 Minor Tic Mark Starting and Ending Locations — 
CXMBEG, CXMEND, CYMBEG, CYMEND 3-64 

3.2.22 Calculated Data Minimums and Maximums — 
CXAMIN, CXAMAX, CYAMIN, CYAMAX 3-64 



4010A02 USER 



Section 4: Advanced System Usage 



4.1 Special Purpose Routines 4-1 

4.1.0 Determining Release or Level of 

Software - AG2LEV 4-1 

Setting Data Limits - MNMX 4-2 

COMMON Table Saving Subroutine - SAVCOM 4-4 

COMMON Restoring Subroutine - RESCOM 4-4 

Symbol Drawing Subroutine - BSYMS 4-6 

Symbol Output Subroutine - SYMOUT 4-8 

Bar Drawing Subroutine — BAR 4-9 

Bar Chart Shading Subroutine - Fl LBOX 4-10 

Tic Mark Labeling Subroutine - LABEL 4-12 

Grid Drawing Subroutine — GRID 4-13 

Window Setting Subroutine - SETWIN 4-14 

Label Width Subroutine -WIDTH 4-15 

4.1.10 Optimum Tic Mark Subroutine -OPTIM 4-16 

4.2 Number Setting Routines 4-18 

4.2.1 Subroutine NUMSET 4-19 
Subroutine EFORM 4-20 
Subroutine FFORM 4-21 
Subroutine I FORM 4-22 
Subroutine EXPOUT 4-23 

4.3 Universal Business Graphing Calendar 4-24 

4.3.1 Conversion to UBGC Value - lUBGC 4-25 

4.3.2 Conversion from UBGC Value - OUBGC 4-26 

4.3.3 Year Day Conversion - YDYMD 4-27 

4.3.4 Year Month Day Conversion - YMDYD 4-28 

4.4 General COMMON Setting and Access Routines 4-29 

4.4.1 COMMON Section Pointers 4-33 

4.4.2 General COMMON Setting Routine - COMSET 4-34 

4.4.3 COMMON Access Function -COMGET 4-36 

4.4.4 General COMMON Section Pointer - IBASEC 4-37 

4.4.5 X Axis COMMON Section Pointer - IBASEX 4-38 

4.4.6 Y Axis COMMON Section Pointer - I BASE Y 4-39 

4.4.7 Examples of Use of COMSET, COMGET, IBASEC 
IBASEX, and IBASEY 4-40 



4.1.1 
4.1.2 
4.1.3 
4.1.4 



4.1.5 
4.1.6 
4.1.7 
4.1.8 
4.1.9 



4.2.2 
4.2.3 
4.2.4 
4.2.5 



Appendix A Sample Graphs 
Appendix B User Routines 

4010 USASCII CODE FUNCTIONS 
Appendix C System Flow Chart 
Subroutine and Function Index 
Subject Index 



A-1 
B-1 



1-1 
1-3 



IV 



4010A02 USER 



SECTION 1 



THE PRIMER 



The Primer provides basic information to guide the user through 
his early contact with the Advanced Graphing II Package. Explanations 
are detailed and specific. Upon completion of the section he should 
be able to create a basic graph with one or multiple curves using a 
long data form. 

Initially, it is necessary to create a program which will call the AG-II 
(Advanced Graphing II) routines necessary to plot a graph. Your com- 
puter system will provide the necessary editing facility to create this 
program. Details of the actual program are described in the following 
section. 



4010A02USER & 1-1 



1 .1 Creating a Basic Graph 

To create a graph initially, it is first necessary to prepare the 
data which is to be plotted. Two data lists will be necessary - 
one for the horizontal (X) values, and one for the vertical (Y) 
values. In the long data form used here, the list will include 
in the first position the number of data values to be plotted; 
subsequent positions contain the data values. Each complete list 
will be called an array. 

Example of Data Array in Standard Long Form: 

DIMENSION XDATA(7),YDATA(7) 

DATA XDATA/6.,1.,2.,3.,4.,5.,6./ 

DATA YDATA/6. ,211 . ,114. ,306. ,354. ,291 . ,325./ 

The first line is a standard FORTRAN DIMENSION statement 
assigning the names "XDATA and "YDATA" to the two arrays 
and setting the length of each to 7 (the total number of 
entries in the array). 

The second line contains the number of data points to be 
plotted (6 ) followed by the actual data values (1, 2, 3, 
etc.) of the X array. The third line contains similar infor- 
mation for the Y array of data. 

Once the data is in a usable form we are ready to graph. 

Five CALL statements will produce results: 

CALL INITT(3p) 

CALL BINITT 

CALL CHECK (XDATA, YDATA) 

CALL DSPLAY (XDATA, YDATA) 

CALL FINITTCia, 7)912)) 

The call to INITT initializes the Terminal Control System (Tektronix 
Part Number 062-1474-xx) which provides the basic line drawing 
functions. The parameter (30) indicates that terminal transmission 
is at 30 characters per second (300 baud). A baud rate of 1200 
would be indicated as 120 characters per second. 

BINITT initializes the AG-II (Advanced Graphing II) system. 

CHECK has two parameters which are the names of the data arrays to 
be plotted (the data arrays we created prior to calling INITT.) 
CHECK verifies that all the necessary information is present. 

DSPLAY, which displays the graph, also requires the names of the 
data arrays as parameters (XDATA, YDATA). 



1-2 @ 401 0A02 USER 



Note that the first data array named in the parameter Is plotted 
on the X axis and the second is plotted on the Y axis. 



FINITT terminates use of the Terminal Control System. The two 
parameters are the position to which the alphanumeric cursor 
is to be moved before termination. (The exact position is not 
important to us here, but must be entered as a matter of form.) 



A com] 
1.1 



iplete program and the graph ft produces are shown in figure 



DATA XDATA/6 ,1,2,3,4.5,6/ 

DATA VDATA/6. ,311 * 114. .306 .354. ,291. , 325 . v' 

CALL INlTT(12e) 

CALL BINITT 

CALL CHECK < XDATA , VDATA ) 

CALL DSPLAV(XDATA,YDATA) 

CALL FINITT<0.7Ce) 

STOP . 

END 



408 



350 



300 



250 



200 



150 



100 









y 


V 














^ 










\ 










































1 1 1 1 


1 1 1 1 

> < 


1 1 1 1 

5 ^ 


1 i 1 1 

L C 


1111 

5 6 



Figure 1 .1 



4010A02 USER 



1-3 



1.2 Multiple Curves 

It is often desirable to plot two sets of data on the same plot. 
For example, a businessman might wish to plot sales of two 
different items for a comparable period of time. To add a second 
data curve to the plot we just created we will need to add another 
array of data. NOTE: Since the second curve will be plotted 
on the same graph as the first, the widest range of data should 
be plotted first. Following is the code which includes the 
added values. Since we will use the same horizontal values, we 
need add only one array for another curve line. 



DIMENSION XDATAC?:)^ YDATA I C7>. YDATA2C7> 

DATA XDATA/6.,1.,2.,3.,4.,5.,6./ 

DATA YDATAl/6.^211.,n4.^306.^354.,29I.,325./ 

DATA YDATA2/6.,367.,300.J79.,238.,320.,210./ 

CALL INITTC30) 

CALL BINITT 

CALL CHECKCXDATA. YDATA I ) 

CALL DSPLAYCXDATA, YDATA 1 !> 

CALL CPL0TCXDATA,YDATA2> 

CALL FINITTC0,700) 

END 



Now we will need to add one more CALL statement immediately 
after the call to DSPLAY. It will draw the second curve. 

CALL CPLOT (XDATA,YDATA2) 

Here XDATA is the name of the horizontal array (the same as for 
the first plot) and YDATA2 is the new data to be plotted in the 
second curve. Following is a copy of the complete code and the 
resulting graph. 



1-4 @ 401 0A02 USER 



DIMENSION XDATAC7:>^YDATA1 C?!). YDATA2C7:) 

DATA XDATA/6.,1.,2.,3.,4.,5.,6./ 

DATA YDATA1/6.,211.,H4.,306.,354.,291.,325./ 

DATA YDATA2/6.^367..300.,179.,238.,320.,210./ 

CALL INITTC30:) 

CALL BINITT 

CALL CHECKCXDATA, YDATA 1 ) 

CALL DSPLAYCXDATA. YDATA 1 !> 

CALL CPL0TCXDATA.YDATA2> 

CALL FINITTC0,700:) 

END 



400 



350 



300 



250 



200 



150 



100 



; 


\ 




> 






- 










^^ 


- 








/ ^ 


"\ 


- 








' 


\ 


- 


\ 




/ 






- 


\ 












1 I 1 I 

< 


1 1 I 1 


1 1 1 1 


1111 


1111 
; 6 



Figure 1 .2 



4010A02 USER 



1-5 



1.3 Introduction to Advanced Plots 

Many options are available to change the appearance of the graph. 
To differentiate the second data curve from the first, we will 
circle each data point of the second curve by adding the 
statement: 

CALL SYMBL(l) 

immediately before the call to CPLOT. Many other symbols are 
available, as you will find by referring to section 3 
of the User's Manual. 



1-6 



4010A02 USER 



DIMENSION XDATAC7:), YDATAl C7:>. YDATA2C7:> 

DATA XDATA/6.J.,2.,3.,4.,5.,6./ 

DATA YDATAl/6., 211. J 14.^306. ,354. ,291. ,325./ 

DATA YDATA2/6.,367.,308.,179.,238.,320.,210./ 

CALL INITTC30> 

CALL BINITT 

CALL CHECKCXDATA,YDATAD 

CALL DSPLAYCXDATA, YDATA 1 !> 

CALL SYMBLCO 

CALL CPL0TCXDATA,YDATA2) 

CALL FINITTC0,700:> 

END 



400 



350 



300 



250 



200 



150 



100 



3 


\ 




y 


V 










X 


\> 


^^ 






\ / 




/ \ 








Y 


/ 


V 








/ ^ 


/ 










/ 










1111 


1111 

> < 


1111 
5 ^ 


1111 


1111 
; 6 



Example 1 .3 



4010A02 USER 



1-7 



Log plots, bar charts, calendar plotting - what is your wish? Advanced Graphing 
II provides these options and more. 

Perusal of the user's manual will supply the familiarity to allow your crea- 
tivity full rein. Various kinds of dashed data curve lines, many kinds of 
tic marks and grid lines, symbols at incremented data points, and a variety of 
label forms are all available, as well as the option of extra labels entered 
at any point on the screen. 

In the Primer we have used only the long data form. A short data form for 
regularly incremented data and a calendar form are also available as explained 
in section 2.?. of the User's Manual. 

If you would prefer a different standard graph, this can be provided by chang- 
ing a few internal values in the code as is explained in the systems manual. 

The following graphs demonstrate a few of the many possibilities. 



1-8 @ 401 0A02 USER 



e.5 



8.0 



-0.5 



-1.0 



-1 .5 




0.40 



0.35 



0.30 



0.25 



0.20 



1 -0.8 



- 








- 




. 




- 


) 


\ 




- 


/ 


\ 






1 


1 


1 



-0.6 



-0.4 



-0.2 



This display selects a portion of the first graph and displays it in detail 
in the second. 

Example 1 .4 



4010A02 USER 



1-9 



COST VOLATILITY 




JUN 



DEC JUN DEC JUN 
1969-1973 



DEC JUN 



Displays two sets of data using TCS routines to form the stepped line 

Example 1.5 



1-10 



4010A02 USER 



MANPOWER IN BUILDING DESIGN 



200 



150 



100 



50 







ITHI ^ 



01 



S 
S 



7 

■ttflH 



V 






704 



705 



f 



706 






ffll 



707 



a 

XT pq 

X- B 

X- R 

iift 



R 
R 
R 
S 

R 
R 

R 
R 

X-/ R 
x-/ Ir 
x-/ 
x-/ 



708 



709 



710 



PERIOD 



DESIGNER 




^ 




^ 



6 



Uses a bar chart to show time spent per period per person. 

Exampl e 1 . 6 



4010A02 USER 



1-11 



H 

I 
6 
H 

E 
S 

T 

P 

E 
R 
C 

E 
N 

T 



F 

U 

s 

E 



68^ 

435< 

\A% 

9H 

e% 

6% 



^M666666^ 



MimUi 



PREVALENCE AND EFFECTIVENESS OF MECHANISMS 
IN BUSINESS 



^S^^^B 



3^^ 



e 



■^ — \ — ' — \ — ' — I — ' — r 

28 4e 60 80 



108 



EVALUATION OF INDUSTRIAL RESOURCES 




LEVEL 



Another use of bar charts 



Figure 1 .6.1 



1-12 



4010A02 USER 



10^-11090 



10^— 800 



10'^— 600 



10*="— 400 



10— 200 



1-J 




Plots a logarithmic and a linear plot with offset axes 
Figure 1.7 



4010A02 USER 



1-13 



loee 



808 



688 



488 



288 




Plots two curves - one against a linear axis and the other against 
a logarithmic axis. 



Figure 1.8 



1-14 



4010A02 USER 



ENGINE PERFORMANCE 



52 



50.0-£ 



47 



45.a-= 



42 



4e.8-f 



37 

35.0-E 

32 

30.0-3 

27 

25.0 

22.5-E 

20.0-^ 

17 

15.0 

t2.5— I — J — [ — I — I — I — [ — I — ( — I — I — I — I — I — I — I — I — I — I — r 

1000 2000 3000 4000 5000 



— 100 




Demonstrates the use of multiple curves with different tic mark values 
for each. 



Figure 1 .9 



4010A02 USER 



1-15 



X18 

5. a 

4.5 
4.0 
3.5 
3.0 
2.5 
2.0 
t.5 
1.0 





y 




-^ 






^ 










/ 










\ 












































\ 




















\ 






















\ 




















\ 
























llllillll 


lllllllll 


lllllllll 


lllllllll 


lllllllll 


lllllllll 


lllllllll 


lllllllll 


lllllllll 



3. 00000 t 3.000003 3.000005 3.000007 3.000009 

3.000002 3.000004 3.000006 3.000008 3.000010 

X10® 



Shows the use of a remote exponent and staggered labels 



Fi gure 1.10 



1-16 



4010A02 USER 



400 



350 



300 



250 



200 



150 



100 



- 






35 


'•'% 








- 




306. 


0ax/ 


y^ N 


\ 


325. 0C 


> 


- 






/ 




291.00^ 


y^ 




- 






' 










- 


\ 














- 


f 14 ^? 


















I 


1 


I 


I 


1 


I 



22 24 26 28 30 32 34 36 



Shows the use of a user written symbol 
routine. 



Figure 1.11 



4010A02 USER 



1-17 



1964-1972 
1972 



1971 — 
1979 — 
1969 — 
1968 — 
1967 — 



SOnZEOZESZU 






1966 — ^ 
s 

1965 — 



1964 — 



w^u^m^y^mj xzii:! 



:i 









ni ITN LI m u ^ 



"aa- 



IZSZU 



OC7R 



OOr'O^ 




Kju^^uiz iz::! 



e 



1 I I I [ 1 i I t [ 1 I 1 I I I 1 I I I 1 1 1 I 

598 1889 1588 2888 2588 



A bar chart with a user written line routine to draw the trains 



Figure 1.12 



1-18 



4010A02 USER 



SECTION 2 



BASIC ROUTINES 



To produce graphs that are more detailed and specialized than the simple 
graphs shown in Section 1, much more information is needed. The following 
sections include explanations for producing logarithmic, calendar, and bar 
plots, as well as describe how to add alphanumeric labels. 

2.1 Definition of Terms 

AG-II Plot Table (also referred to as AG-II COMMON) will be referred to 
frequently throughout the manual. This is a global table of values, 
available to all system routines, which determines the various traits of 
tHe graph. The table, and all user called subroutines to set it, are 
included in Section 3. We will be referring to those routines in this 
section, also, as we describe the various kinds of plots possible. 

Note: The general user will never need to allocate space for the Plot 
Table or be concerned with it directly. 

Since we did not specify any graph characteristics in the Section 1 
examples, they were set internally and stored in the AG-II Plot Table. 
These internally set values are called "default" values, since we did 
have the ODDortunity to set them but failed to exercise our right. 

Figure 2.1 helps define the terms which will normally be used in 
discussing parts of the graph. The window is the portion of the display 
which contains the curve, not including the tic mark labels, titles, or 
tic marks which extend outside the axis lines. There are two axes in 
a standard plot - - the X axis which is the horizontal aspect of the 
graph and the Y axis which is the vertical aspect of the graph. In 
general discussion the term "axis" will be used to designate not only 
the window edge, but also the tic marks and labels which relate to it. 
X axis data is the data which will be plotted along the X axis, and Y 
axis data is plotted on the Y axis. 

The "remote exponent" is the value by which every tic mark label along 
the axis is multiplied to obtain the actual value. It is used to 
eliminate 0's from the labels, allowing large values in limited label 
space. 

"Tic marks" are divided into two categories - - "major" and "minor". 
Only major tic marks are labeled; minor tic marks are merely reference 
points between. Minor tic marks are arbitrarily extended from the window 
edge half the length of major tic marks (excluding grid lines). 

The screen is divided into a grid work of points which are referred to 
as raster units. These units are used to specify locations on the screen. 
For example, a screen location of 300,200 is a point 300 raster units across 
(the X coordinate) and 200 units up (the Y coordinate;. The Tektronix 
4010 terminal, for example, has a screen display area 1023 raster units 
by 780. 

4010A02USER (5) 2-1 



GRAPH NOMENCLATURE 



REMOTE 
EXPONENT- 



■^ xlO' 



LABELS 



AXIS 
LABELS 



TITLE 



^C 



xlO^ 




J c 



TIC MARKS 
INCLUDE GRID 



DATA 
CURVE 



^*) 



AXIS 
2 PER PLOT 
STANDARD (X,Y) 



STAGGERED 
TIC LABELS 



REMOTE EXPONENT 



Tic marks are classified as 
major or minor. Only major 
tic marks are labeled. 



Figure 2.1 
Graph Nomenclature 



2-2 



4010A02 USER 



2.2 Data Structures 

In the primer, we used only one standard data form. Two other forms 
are available for general use, as well as a non-standard long data form. 
(See Figure 2.2.) 

2.2.1 Standard Long Form 

The array contains the actual data values. The first element 
tn the array is a positive value specifying the total number 
of points, followed by the individual data point values, in the 
order in which they will be plotted. 

A short calendar form is provided for calendar data, but 
should a long form be used, all calendar values must be in 
UBGC (Universal Business Graphing Calendar) form. See Section 
4.3 for details of conversion to UBGC values. 

2.2.2 Short Linear Form 

The short form may be used if the data is regularly incremented. 
The first element is -1, indicating the method of expansion 
(linear). The second element is the number of values to be 
plotted, the third is the first value to be plotted, and the 
fourth is the amount by which the value is to be incremented 
for each data point. 

The data statement DATA YARRAY/-1 ,,6. ,1 . ,2./ would plot the 
values 1, 3, 5, 7, 9, 11 . 

2.2.3 Short Calendar Form 



The short calendar form is normally used for all calendar data. 
The first item is -2 which indicates the method of expansion 
(calendar) . The second element is the number of values to be 
plotted, the third is the number of periods per year, the fourth 
is a four digit year in which the data begins, and the fifth is 
the starting period. The "number of periods per year" can only 
be 1, 4, 12, 13, 52, or 365 (366 cannot be used for a leap year). 

The data statement for an array of six months beginning with 
July 1969 would appear as: 

DATA XARRAY/-2.,6.,12.,1969.,7./ 

Note: If data is entered in short calendar form, labels will 
be in calendar form also, without extra Table setting calls. 



4010A02 USER 



REV. A, MAR. 1978 2-3 



2.2.4 Non-Standard Long Form * 

Data from existing applications programs may not be available 
with the array length as the first element. In this case, the 
user may set the number of data points (CNPTS) in the Table by call- 
ing NPTS(IVALUE) which indicates that a non-standard array of length 
equal to IVALUE is being used. (See Section 3.1.5.) 

The elements of the array are the actual values to be plotted. 



Dl 



D2 



03 



Dn 



-1 



Dl 



AD 



-2 



N 



PERIODS 
PER YEAR 



YEAR 
START 



PERIOD 
START 



Dl 



D2 



D3 



STANDARD LONG 
FORM 



SHORT 

LINEAR 

FORM 



SHORT 

CALENDAR 

FORM 



NON-STANDARD 
LONG FORM 



Dimensioned to 
N+1 



Dimensioned to 
4 



Dimensioned to 
5 



Figure 2.2 
DATA STRUCTURE 



Dimensioned to 

CNPTS 
as set by 

IVALUE 
in 

NPTS( IVALUE) 



*Note: A non-standard short form may also be used if the user writes a brief 
UMNMX subroutine and UPOINT function as described in Section 14 of the 
System Manual. 



2-4 



4010A02 USER 



2.3 Basic Plot Creating Routines 

The following section describes the basic plot creating routines 
which were used in The Primer. 



401 0A02 USER @ 2-5 






TCS 
IN ITT 














AG-II Table 


1 , 3^ 




80 Word Table 


w 


BINITT 




















CHECK 


4 


DATA 




















j~ — ^ 


1 


' 






p 


DSPLAY 






b^'^^ ^ 








— \/v /^ 




v: 2=^ 





























BASIC GRAPH GENERATION 
Figure 2.3 



2-6 



4010A02 USER 



2.3.1 Advanced Graphing II Initialization Subroutine - BINITT 

This routine sets the initial values of the Advanced 
Graphing II COMMON. 

Calling Sequence: 

CALL BINITT 
Parameters Entered: 

None 

Description: 

BINITT should be called before any other Advanced 
Graphing II calls are made. It sets the initial 
values of AG-II COMMON and calls INITT if the 
user has failed to do so. Note: Since INITT 
sets the transmission rate, failure to call it 
directly may result in much longer delays than are 
really necessary at low transmission speeds. 

BINITT may be called at any time to set the table 
values back to the default values. 

In some applications, different initial values may 
be desired to avoid routine calling of Table 
setting routines. The program source statements 
of subroutine BINITT may be altered to perform 
this function more efficiently than with subroutine 
calls. 



401 0A02 USER @ 2-7 



2.3.2 Table Checking Subroutine - CHECK 

This routine assures that values have been specified for all 
necessary words in COMMON. 

Calling Sequence: 

CALL CHECK (XARRAY,YARRAY) 
Parameters Entered; 

XARRAY is the data to be used for the X axis. 

YARRAY is the data to be used for the Y axis. 

This user called routine checks for the data minimums and maximums 
and the screen length. It then calls OPTIM which checks and 
figures COMMON values pertaining to spacing of tic marks and 
label values. CHECK then calls WIDTH and SPREAD which calculate 
the width and position of the labels based on the room available, 
and TSET which calculates grid parameters. 

This routine does not display the graph, but only prepares all 
Internal values necessary for display. 

If BINITT has not been called before the user calls CHECK, CHECK 
will call it. Note: This is not the recommended calling 
sequence. An error message will result if BINITT has not been 
called, and any modifying calls made before CHECK will be cancelled. 

Note: CHECK does not alter values which have previously been 
specified. Repeated use of CHECK without changing COMMON may 
result in wasted computer time and unchanging plots. 



2-8 @ 401 0A02 USER 



2-3.3 Graph Displaying Subroutine - DSPLAY 

This routine displays the complete graph on the 
screen. 

Calling Sequence: 

CALL DSPLAY (XARRAY,YARRAY) 

Parameters Entered: 

XARRAY is the array of data for the 
X axis. 

YARRAY is the array of data for the 
Y axis. 

This subroutine calls all the subroutines necessary 
to actually display the completed graph. It sets 
up the window, plots the curve , draws the grid, 
and labels each set of major tic marks. Subroutines 
INITT, BINITT, and CHECK must be called prior to 
calling DSPLAY. 



401 0A02 USER (cb 2-9 



2.3.4 Curve Plotting Subroutine - CPLOT 

This routine plots a curve, using the data window location values 
currently in COMMON. It does not draw the grid or labels, or alter 
scale factors that determine which data values will be plotted. 

Calling Sequence: 

CALL CPLOT (XARRAY,YARRAY) 
Parameters Entered: 

XARRAY is the name of the X array. 

YARRAY is the name of the Y array. 

This routine is called by subroutine DSPLAY to plot the curve 
portion of the graph. For multiple curves on the same graph, 
the user should call DSPLAY for the first curve and CPLOT for 
all additional curves. If the data values exceed the window 
boundaries as defined in the Table, the curve will be clipped. 

If it is desired to draw several curves on a single scale without 
clipping, two methods are possible. 

1. CALL DLIMY and/or DLIMX (Section 3.2.11) if the data 
mini mums and maximums are known. 

2. CALL MNMX (Section 4.1.1) once for each curve before 
calling CHECK and DSPLAY for the first curve if automatic 
setting of the minimums and maximums are desired. 

See Figure 1.2 for an example of use. 



2-10 @ 4010A02USER 



2.4 Changing Standard Graph Form 

Any time the user wishes to specify the exact number of tic mark intervals, 
raw (non-neat) data values for tic marks and labels, length and tic 
mark width of labels, or a specific remote exponent, etc., he may do so 
by setting the values with the routines described in Section 3. 

Any such table setting routines which affect the initial display are 
inserted between the calls to BINITT and CHECK. 

DIMENSION XDATAC4),YDATA(7) 

DATA XDATA/-1.,6.,1.,1./ 

DATA YDATA/6. ,21 1 . ,114. ,3p6. ,354. ,291 . ,325./ 

CALL INITT(30) 

CALL BINITT' 



CALL CHECK (XDATA,YDATA) 
CALL DSPLAY(XDATA,YDATA) 
CALL FINITT(je),7)3i9) 
STOP 
END 

(Note that the Y axis data has been entered in standard long form and 
that the X data is in short linear form.) 

For example, inserting 

CALL XDEN(3) 

as described in Section 3.2.5 will change the tic mark density factor 
to 3 which will eliminate minor tic marks. 

CALL YNEAT(j3) 

specifies raw data tic mark values instead of "neat" values. (See Section 
3.2.1.) 

Any number of calls may be inserted between the calls to BINITT and CHECK. 

When a multiple curve is being plotted, the calls which are to affect 
only an additional curve should be placed immediately before the call 
to CPLOT which draws the additional curve. The use of CPLOT is described 
in Section 1.2. 



4010A02 USER 



2-11 



DIMENSION XDATA(4),YDATAU7),YDATA2(7) 

DATA XDATA/-1.,6.,1.,1./ 

DATA YDATAV6. ,211 . ,114. ,3)36. ,354. ,291 . ,325./ 

DATA YDATA2/6. ,367. ,3j80. ,179. ,238. ,32)0. ,21)3./ 

CALL rNITT(3ja) 

CALL BINITT 

CALL CHECK(XDATA,YDATA1) 

CALL DSPLAY(XDATA,YDATA1) 



CALL SYMBL(4) . 

CALL CPL0T(XDATA,YDATA2) 

CALL FINITT(j3,7iD0) 

STOP 

END 



2-12 @ 4010A02 USER 



2.5 Multiple Curves with Different Scales - DINITX, DINITY 

A simple method of plotting a second curve was described in Section 1.2. 
However, if the second curve has data values which extend outside the 
first data ITmtts, the curve will be clipped at the window edge. 
See example 2.4. 

To prevent this from occurring, the user may make all the calls to display 
the first curve (including BINITT, CHECK, and DSPLAY), followed by 
calls to DINITX or DINITY, an axis location routine, CHECK, and DSPLAY 
for the additional curve. An axis location change is necessary to 
prevent the new label values from being printed over the old ones. 
The routines you might choose to use are XLOC or YLOC which offset 
the axes from the normal left hand and lower window boundaries, and 
XLOCTP or YLOCRT which move the axes to the opposite side of the 
window. 

If the entire table were reinitialized with BINITT, the tic mark 
locations would also be recomputed. DINITX or DINITY will leave the 
tic mark locations the same. 

The program might appear as shown in example 2.5. 

Subroutine DINITX 

This subroutine reinitializes the label values of the X axis in the 
AG- 1 1 Table, allowing the drawing of an additional curve with new 
label values. 

Calling sequence; 

CALL DINITX 
Parameters Entered: 

None 

Description: 

All values related to labeling the X axis are reinitialized to 
zero, so that new values can be computed for the display of an 
additional curve. 



401 0A02 USER @ 2-13 



Subroutine DINITY 

This subroutine reinitializes the label values of the Y axis in the 
AG-II Table. This allows the drawing of an additional curve with new 
label values. 

Calling Sequence: 

CALL DINITY 
Parameters entered: 

None 



Description: 



All values related to labeling the Y axis are reinitialized 
to zero, so that new values can be computed for the display of 
an additional curve. 



2-14 @ 4010A02USER 



DIMENSION XDATAC7>.YDATA!C7>.YDATA2C7> 
DATA XDATA/-t..6.,l.,l./ 

DATA YDATAt/6.,2tl.,lt4.,306..354.,29l.,325./ 
DATA YDATA2/6.,367.,458.,168.,238.,62a.,2t8./ 
CALL INITTC305 
CALL BINITT 

CALL CHECKCXDATA^ YDATA 1 D 
CALL DSPLAYCXDATA, YDATA I > 
CALL LINEC34> 
CALL CPL0TCXDATA.YDATA2) 
.CALL FINITTC0, 788) 
END 



NOTE: The call to TINPUT is used as a pause throughout this manual 
so the user can study the graph or make a hard copy. 



488 



358 



388 



258 



288 



158 



188 





/ 

/ 
/ 

f 


— r- ' 

\ 
\ 
\ 
\ 


> 


1 
1 

/ 
/ 


1 

I 
\ 
V 

\ 






\ 
\ 
\ 
\ 
\ 






\ 

\ 






\ / 

\ / 
\ J 




/ 
/ 


\ 
\ 
\ 

\ 




\ 


\ 
/ \ 
/ \ 
/ \ 


y 

y 
y 
y 




\ 
\ 

\ 






/ \ 
/ \ 
/ \ 


y 
y 
y 

/ 
* 








\ 


/ 










1 1 I 1 

< 


1111 
> < 


1111 


1111 

c 

r s 


1111 

; 6 



Clipped Data 
Figure 2.4 



4010A02 USER 



2-15 



DIMENSION XARRAY<7>,YARRAYC7).ZARRAYC7> 

DATA XARRAY/6 . , 22 . 0, 24 . 5, 27 . 8, 29 . 5, 32 . 0, 34 . 5/ 

DATA YARRAY/6.,211.,114.,306.,354.,29!.,325./ 

DATA ZARRAY/6.,366.,458.,198.,235.,620.,478./ 

CALL INITTC30:> 

CALL BINITT 

CALL SLIMXC200,800:> 

CALL checkcxarray,yarray:> 

CALL DSPLAYCXARRAY^YARRAY!) 
C *» SECOND CURVE, HAS DIFFERENT Y RANGE. REINITIALIZE. 
CALL DINITY 
CALL YLOCC-t00:) 
CALL LINEC34:) 
CALL YFRMC4> 
CALL XLABC0:> 
CALL XFRMC0> 

CALL CHECKCXARRAY^ZARRAY^ 
CALL DSPLAYCXARRAY^ZARRAY) 
CALL TINPUTCIVY) 
CALL FINITTC0, 700D 
END 



700- 



600' 



500' 



400- 



300- 



200- 



100- 



400 



350 



300 



250 



200 



150 




t00 [ I M I [ I I 1 I [ M I 1 [ 1 I I 1 [ M 1 i [ 1 i I I 
20.0 22.5 25.0 27.5 30.0 32.5 35.0 



Dual Scales 
Figure 2.5 



2-16 



4010A02 USER 



2.6 Logarithmic Plots 

Logarithmic plots may be created by entering data in the usual manner 
and specifying YTYPE or ZTYPE of 2. XTYPE and YTYPE are described 
in Section 3.2.13. Either one or both axis may be made logarithmic 
on the same plot. The data and the axis limits set by SLIMX, SLII4Y, 
must be greater than 0, Otherwise, the associated logarithm is not 
defined. 

The sample results are shown. 

DIMENSION XDATAC4:> , YDATA I C7> 

DATA XDATA/-l..6.,l.,l./ 

DATA YDATA 1/6.^110., 2400 . , 1 0000 . , 320000 . , 5600000 . , 20000000 . / 

CALL INITT C30> 

CALL BINITT 

CALL YTYPEC2> 

CALL CHECKCXDATA, YDATA t > 

CALL DSPLAYCXDATA, YDATA t > 

CALL FINITTC0, 700:> 

END 



t0 



8 



10 



10 



1 — 
6 








y 


--- 


4 






/ 


/ 




..... 
2 




^ 










1 1 I 1 

2 


1 I 1 1 


1 I 1 1 


1111 

c 

r « 


1111 

; 6 



Logarithmic Plot 
Figure 2.6 



4010A02 USER 



REV. A, MAR. 1978 



2-17 



2.7 Calendar Plotting 

If data is entered in the short calendar form, appropriate label type 
will also be used. An appropriate data statement for monthly data 
would be 

DATA XDATA/-2.,6.,12.,1969.,7./ 

Where -2 specifies calendar form, 6 is the number of points to be plotted, 
12 is the number of periods per year, and 7 is the beginning period in 
the beginning year. A plot will appear as shown in Figure 2.8. 

The label type and data type have been set internally to match the 
calendar data. However, if you want to plot daily data against a 
weekly grid, the data would be entered as daily, and the user would 
need to call XLAB or YLAB (depending on which axis the calendar data 
is plotted) to set the label type to be weekly. (See Section 3.2.4 
for a description of XLAB and YLAB.) 

If daily data is being plotted, the remote label will be the date of 
the first day of the grid. The remote labels for all other types of 
calendar data will be the year or span of years plotted (e.g., 1969 
or 1969-1971). 



2-18 



4010A02 USER 



DIMENSION XDATACS:) , YDATAC?^ 
DATA XDATA/-2.,6.,12.,1969.,7./ 
DATA YDATA/6.^328.,632.,42t ., 780. ,632.^ 472./ 
CALL INITTC120:> 
CALL BINITT 
C H MAXIMUM LENGTH OF XLABELS WILL BE 3 
CALL XWDTHC3> 
CALL CHECK CXDATA.YDATA) 
CALL DSPLAYCXDATA^YDATAJ 
CALL TINPUTCI) 
CALL FINITTC0, 700:) 
STOP 
END 

C4»»HM»»HMM'}(>N>il>l»1»l»»H»»HI»»»»l»MI>i»»MI»l*»ii>l»l*>i»l»»1»M4»MHI»l*l»i»l»»»l»»4»l»l»l»»l»l» 



800 



700 



600 



500 



400 



300 




AUG 



SEP 



OCT 



NOV 



DEC 



1969 



Calendar Plot 
Figure 2.7 



4010A02 USER 



2-19 



2.8 Bar Charts - HBARST. VBARST 

Bar Charts may be specified by using one of two routines - HBARST 
for horizontal bars or VBARST for vertical bars. The same results 
could be obtained by making individual calls to LINE to specify bar 
chart, XFRM or YFRM to suppress the grid lines parallel to the bars, 
SYMBL to specify the type of shading lines in the bar, SIZEL to 
specify the width of the bar, and SIZES to specify the distance 
between the shading lines. These subroutines are described in detail 
in Section 3. 

Subroutines HBARST and VBARST 

Calling Sequences: 

CALL HBARST (ISHADE,IWBAR,IDBAR) 

or 
CALL VBARST (ISHADE,IWBAR,IDBAR) 



Parameters Entered 
I SHADE 

IWBAR 



IDBAR 



Description; 



is the integer value of the type of shading 
to fill in the bar. See chart below. 

is the width of the bar in raster units. 
The width of the bar must be greater than 1, 
but will result in a default width of 40 
raster units. 

is the distance between the shading lines in 
raster units. The distance must be greater 
than 2; however, if a is entered, a default 
width of 20 raster units will result. 



The types of shading are as follow: 
BAR CHART SHADING 



RESULT 



VALUE 



RESULT 



VALUE 





1 


'i 


:^ 


^: 






>: 


>: 


:r: 


:* 



8 



le 



u 



12 



13 



14 



15 



NOTE: Grid lines will be prevented from appearing parallel to these bars. 



2-20 



4010A02 USER 



DIMENSION XDATAC4:>,YDATACi3:> 
DATA XDATA/-t..l2.,l.,l./ 

DATA YDATA/t2. ^328. ,632.^421 .^ 782. ,632. ^472. ,390. ,562.^ 
8, 688. ,852. ,729. ,645./ 
CALL INITTCt20> 
CALL BINITT 
CALL VBARSTC8,0,0^ 
CALL XFRMCt) 
CALL CHECK CXDATA,YDATA) 
CALL DSPLAYCXDATA,YDATA> 
CALL TINPUTCI^ 
CALL FINITTC0,7003 
STOP 
END 

CMI»l»l»»»»»»l*'l»lM»l*«»4»l*H»)»M-»M>»»l»»l»l»»»»»l»»l»l»l»W»l»l»»»MHl»l»M>l»»l»i>l»l»l»l»l*»l» 



1000' 



800' 



S 



1 



600' 



s— g^ 



i 



i 



^-^-^ 



1^ 



^ 



400' 



i 






^-^^-^-^ 






^ ^ 



^ 



i 






^-^-^-^ 






^ 



^lil 



zee 



b:: 



lll^l$:i 



ii 



I 



K 



I 



1 






















6 



8 



10 



12 



Bar Chart 
Figure 2.8 



4010A02 USER 



2-21 



2.9 Screen Window Location 

Three different Table Setting subroutines are available to set screen 
window position, depending upon the manner in which you would prefer 
to enter the information. Any position defined is the position of tKe 
data window Itself, not Including the labels and other internal inforin- 
ation, so It is important to leave room for these "extras" when defining 
the window location. On a Tektronix 4010 terminal there are 1024 
visible addressable units on the X axis and 781 visible addressable 
units on the Y axis with 128 units to the inch. These raster unit 
designations are used to show screen location. The visible screen 
appears as: 



8 inches 



0,780 



Y axis 




7023,780 



L 6.1 inches 



1023,0 



X axis 



2.9.1 Easy Method 



The simplest method of entering the location is to use the 
routine PLACE which will position the window at predefined 
positions on the screen. The diagram in Section 3.2.12 shows 
the positions and the literals which may be used as parameters 
to designate them. The statements: 

DATA IUL4/3HUL4/ 
CALL PLACE (IUL4) 

would position the window in the upper left hand quarter of the 
terminal screen. See Section 3.2.12 for complete description. 



2-22 



4010A02 USER 



2.9.2 Screen Coordinate Method 

The limits of the X axis or the Y axis may be set directly in 
screen units by calling SLIMX or SLIMY in the form 

CALL SLIMX(3)Z)|D, 8)0)3) 

where 3)9)0 is the X axis screen minimum in raster units, and 8|9)0 
is the X axis screen maximum. This would limit the width of the 
window. SLIMY would be called to set the height of the window 
in a similar manner. 



2.10 Multiple Graphs on the Same Page 

To display two or more separate graphs on the same page it is necessary 
to call BINITT, location setting routines, CHECK, and DSPLAY, in that 
order, once for each graph. An example, with two methods of positioning 
the window, follows: 



401 0A02 USER @ 2-23 



DIMENSION XDATAC4^, YDATAC 1 3>, ZDATACl 3> 

DATA XDATA/-t..t2.,l.,l./ 

DATA YDATA/12., 328. ,632. ,421. ,780. ,632. ^472. ,390. ,562., 
8. 680. ,852. ,729. ,645./ 

DATA 2DATA/12.,100.,199., 166., 188., 199., 192. ,503., 
&434., 592. ,309. ,277. ,177./ 
C i» VARIABLE UPH IS A 3 ELEMENT LITERAL 

DATA IUPH/3HUPH/ 

CALL INITTC120) 

CALL BINITT 
C ♦» DISPLAY THE GRAPH IN THE UPPER HALF OF THE SCREEN AREA 

CALL PLACECIUPHD 

CALL CHECK CXDATA,YDATA) 

CALL DSPLAYCXDATA,YDATA) 
C i^ CHANGE SCREEN LIMITS TO DISPLAY THE GRAPH 
C i» IN BOTTOM HALF OF SCREEN AREA 

CALL BINITT 

CALL SLIMXC400,800:> 

CALL SLIMY C50, 400^ 

CALL CHECK CXDATA,ZDATA) 

CALL DSPLAYCXDATA, ZDATA:> 

CALL TINPUTCI> 

CALL FINITTC0, 7005 

STOP 

END 

Cl»i»4»»KMI»}»»}l>M>lt>4»»i»l»»l»M)»}»»)t'M'}»4»»l»l>H»»l»»i»»}t'i»l»1»l>l»»l»»»}»l»l»l«>}t>lfl»1»l»l»l»l»l»l»l»i«' 



1000 




600 



400 



200 



Multiple Graphs 
Figure 2.10 




2-24 



4010A02 USER 



2.n Additional Labels and Titles 

Additional labels may be added to the display by establishing an array 
of the ASCII equivalents of the characters to be displayed, moving 
invisibly to the beginning point and calling either HLABEL (horizontal 
labeling routine) or VLABEL (vertical labeling routine) to display the 
label. 

DATA ISTRIN/84,73,84,76,69/ 

Would establish a string which contains the ASCII equivalents of "TITLE". 
Appendix C charts the equivalents. 

TCS subroutine MOVABS (see your PLOT-10/Terminal Control System User's 
Manual) provides one method of moving to the beginning 
location of the label. 

CALL MOVABS ( I X,IY) 

where IX is the X screen coordinate and lY is the Y screen coordinate 
of the lower left corner of the first character. 

A call to HLABEL or VLABEL immediately following the call to MOVABS 
will display the label. For example, 

CALL HLABEL(5,ISTRIN) 

would display the five characters contained in the string ISTRIN hor- 
izontally. VLABEL is used in the same manner for vertical labels 
with the location being the upper left corner of the first character. 

Subroutine NOTATE may also be used to display horizontal labels, as 
described in Section 2.13.2. 



4010A02 USER @ 2-25 



DIMENSION XDATAC4). YDATAl C7>. ISTRINC5> 

DATA XDATA/-1 ..6., 1 ., 1 ./ 

DATA YDATAl/6.,21t..ll4.,306.,354.,291.,325./ 

DATA ISTRIN/84, 73, 84, 76, 69/ 

CALL INITTC38:> 

CALL BINITT 

CALL CHECK CXDATA, YDATA t > 

CALL DSPLAYCXDATA, YDATA 1 > 

CALL M0VABSC588, 738:> 

CALL HLABELC5,ISTRIN) 

CALL FINITTC8, 7885 

END 



TITLE 



408 



358 



380 



258 



200 



150 



100 









> 














\ 


^- 










\ 


^ 
















\ 












\ 












1111 

< 
< 


1 1 1 1 

m \ 


1111 


1111 

5 


1111 
5 6 



Labels and Titles 
Figure 2.11 



2-26 



4010A02 USER 



2.12 Framing the Data Window 

With a standard default graph, the grid lines form a frame for the 
data vdndow. However, if short major tic marks have been specified 
to omit grid lines (CALL XFRM(IVALUE) with IVALUE of 1 , 2, 3, or 4), 
two sides of the window opposite the axes will not be framed. To create 
a frame, the user may call subroutine FRAME after DSPLAY. 



DIMENSION XARRAYC7:>,YARRAYC7:> 

DATA XARRAY/6.,22.0,24.5.27.a.29.5,32.0,34.5/ 

DATA YARRAY/6.,21t ., 1 1 4. ,306.,354. ,291 .,325./ 

CALL INITTC120:> 
C •> DRAW A GRAPH THAT NEEDS FRAMING 

CALL BINITT 

CALL SLIMY C280,508:> 

CALL XFKMC2^ 

CALL YFT?MC55 

CALL CHECK CXARRAY^YARRAY) 

CALL DSPLAYCXARRAY, YARRAYD 

CALL TINPUTCK) 
C «* DRAW A FRAME AROUND THE GRAPH 

CALL FRAME 

CALL TINPUTCK) 

CALL FINITTC0,7005 

END 

Cl*l»»MM»}*»}»N>)»N>l»i»»MH»MHI»l»if>l»l»4»l»l»l»»»i*M}l>N'N>l»MI»»l»l*»H»»»N>»»M^}»»i»i»l»»H»»l» 



401 0A02 USER @ 2-27 



408 



300 



200 



100- 




T ' 

24 



! — ' — I — ' — I — ' — r 



26 



28 



30 



32 



1 » 1 

34 36 



400 




200 



Screen Framing 
Figure 2.12 



2.13 Frequently Used Routine^ 

The routines which the user might call most frequently are described 
in detail tn the following sections. The usage of most of these 
routines has been discussed in the previous sections. 



2-28 



4010A02 USER 



2.13.1 Window Framing Subroutine - FRAME 

This routine draws a frame around the window. 
Calling Sequence: 
CALL FRAME 
Parameters Entered: 
None 

Description: 

If short tic marks have been specified (without 
grid lines), the sides of the data window opposite 
the axes will not be framed. In this case, calling 
FRAME will add these lines. 

Figure 2.12 shows the use of subroutine FRAME. 



2.13.2 Horizontal Labeling Subroutines^ HLABEL, HSTRIN, NOTATE 

The two routines HLABEL*and HSTRIN print the label string on 
the screen in the position designated . They may be used inter- 
changeably but use different methods for entering the length 
of the string. 

The alphanumeric cursor must be moved to the label beginning 
point using a TCS command before calling either of these two 
routines. Subroutine NOTATE moves the cursor itself. NOTATE 
also allows subscripts and superscripts by means of special 
flags. 



For systems which use buffered I/O, the TCS, Level 1, subroutine 
ANSTR should be used in place of HLABEL. The parameters of ANSTR 
are the same as those of HLABEL. 



401 0A02 USE R REV A, AUG 1 980 2-29 



Calling Sequence: 

CALL HLABEL (LENGTH, ISTRIN) 

Parameters Entered: 

LENGTH is the length of the label character string. 

ISTRIN is the label character string in ASCII decimal 
equivalents (numbers j3 through 127 representing 
alphanumeric characters). 

Figures 2.10 and 2.13.3 demonstrate the use of HLABEL. 
Cal ling Sequence: 
CALL HSTRIN (ISTRIN) 
Parameters Entered: 



ISTRIN 



is the array of characters in ASCII decimal 
equivalents (numbers J3 through 127 representing 
alphanumeric characters.) The first element 
in ISTRIN is the number of characters in the 
alphanumeric string, i.e. length of ISTRIN less 1, 
Note: This is similar in form to the standard 
long data form. 

Call ing Sequence: 

CALL NOTATE (IX, IY,LENCHR, ISTRIN) 

Parameters Entered: 

IX, lY designate the beginning point of the label in 
screen coordinates. 

LENCHR is the length of the character string for the 

given label, including the number of -1 and -2 tags 

ISTRIN is the string of characters in integers from 
to 127 (ASCII decimal equivalents), plus any 
-1 and -2 tags. A -1 tag in the character string 
causes the succeeding characters to be output 
one-half line upward. A -2 tag in the character 
string causes succeeding characters to be output 
one-half line downward. These offsets remain in 
effect until another tag is encountered. Thus, 
a -1 tag will cancel a previous -2 tag, and 
vice- versa. 



2-30 



REV A, AUG 1 980 



4010A02 USER 



DIMENSION XI (5) ,Y1(5) 

DIMENSION ISTRINdS) 
CREATE A GRAPH OF Y = X * X 

DATA X1/4. ,2. ,4. ,8. ,16./ 

DATA Y1/4. ,4. , 16. ,64. ,256./ 

DATA ISTRIN/89,-2,49,-1 , 32 , 61 , 32 , 88 , -2 , 49 , -1 , -1 , 50/ 
CHANGE THE SCREEN WINDOW SIZE 

CALL INITT(240) 

CALL BINITT 

CALL SLIMX(359,850) 

CALL SLIMY(250,650) 
PRINT THE TITLE OF THE DISPLAY 



CALL 
CALL 
CALL 
CALL 
CALL 
STOP 
END 



NOTATE(400, 100, 
CHECKCXI ,Y1) 
DSPLAY(X1 ,Y1) 
TINPUT(I) 
FINITT(0,700) 



13,ISTRIN) 



3ee 



aee 



lee 




y^ - x^ 



4010A02 USER 



REV A, AUG 1980 



2-31 



2.13.3 Vertical Labeling Subroutine - VLABEL, VSTRIN 

These routines print a label string on the screen vertically. 
Note: The alphanumeric cursor must be moved to the label 
beginning point before calling VLABEL. TCS commands provide the 
moving capability. The top left of the first output char- 
acter is at the current beam position. 

1 . Calling Sequence: 

CALL VLABEL (LENGTH, ISTRIN) 

Parameters Entered: 

LENGTH is the length of the label character string. 

ISTRIN is the label character string in ASCII equiv- 
alents. 

Figure 2.14 demonstrates the use of VLABEL. 

2. Calling Sequence: 

CALL VSTRIN (ISTRIN) 

Parameters Entered: 

ISTRIN is the array including in the first position 
the number of characters in the label (the 
length of the array minus one), followed by the 
characters in ASCII decimal equivalents 



2-32 @ 401 0A02 USER 



DIMENSION ISTRIN<22> 

DrtT« ISTRINx'48, 32.. 4£'> 32.. 59.. 32.. 51 . 32. 52.. 32.. 53.. 32> 54. 32/55* 32/ 
«.56.32.57..32..5e..32' 
CALL INITTCSQ) 
CALL BINITT 
C :»: LABEL IN THE HORIZONTAL DIRECTION 
CALL HLABELC22.. I$TRIN> 
CALL TINPUT<I> 
CALL FINITTCd..70e> 
STOP 
END 

9123456789 •■ 



D I MENS I ON I STR I N< 22 > 

DATA ISTRIN'-'48.. 32.. 49.. 32. 5©.. 32. 51 . 32.. 52.. 32.. 53.. 32. 54. 32. 55/ 32/ 
1^.56 . 32 . 57 . 32 .. 58 .. 32- 
CALL INITTCSO!) 
CALL BINITT 
C t: LABEL IN THE UERTICAL DIRECTION 
CALL UL ABELC 22 .. I STR I N > 
CALL TINPUTCI) 
CALL FINITTC0..7e0> 
STOP 
END 

e 
1 

2 
3 

4 
5 
6 

7 
8 



Horizontal and Vertical Labels 
Figure 2.13.3 

401 0A02 USER @ 2-33 



2.13.4 Label Justification Subroutine - OUSTER 

This subroutine right, left, or center justifies labels or other 
strings of characters to be displayed. 

Calling Sequence: 

CALL OUSTER (LENGTH, ISTRING, KEY, IFIL,LEN,IOFFSET) 



Parameters Entered: 
LENGTH 

ISTRING 

KEY POSITION 



is the total length of the character 
string, including fill characters. 

is the array of characters (in ASCII 
equivalents). 

is an integer that designates if the string 
is to be right, left, or center justified. 
Values entered are 

+ right justified 
center justified 
- left justified 



IFILL CHARACTER is the character in ASCII code used as 
filler (usually a space [32]). 

OUSTER deletes fill characters occurring 
at the start of the ISTRING. 



Parameters Returned: 
LEN 

I OFFSET 



is an output parameter giving the length 
of the character string without fill 
characters. 

is the distance in raster units between 
the reference point from which the string 
is to be justified and the actual starting 
point for the justified string. 



OUSTER provides the information necessary for a call to NOTATE, 
(Section 2.13.2) which displays labels. 

Note: If AG-II routines were used to create the strings to 
be justified, the specified fill character and width must be 
the same as those specified at creation time. 



2-34 



REV A, APR 1979 



4010A02 USER 



THIS ROUTINE DEMDNSTRi::^TES JUSTER 

DIMENSION At: 3 >.. IrtRRAY<: 8 >.. LCENTR< 39 >.. LFFORM< 15 > 

DATA A- 12345678. . . 12345678. 1 23. 45678. • 
EXPLANATION LABEL ^ CENTER LINES FOR JUSTIFICATION 

DATA LCENTR 67. 69. 78. 84.. 69.. 82. 32.. 76. 73 . 78 . 69.. 83. 32. 70. 79. 82, 32, 74, 
1^85 .. 83 . 84 . 73 . 78 . 73 • f=^7 . 6?^ • f^4 • 73 . 79 . 78^' 
FFORM OUTPUT LABEL 

DATA LFFORM. • 79 .. 85 .. 84 . 80 .. 85 . 84 . 32 . 79 .. 70 .. 32 . ?Q>7Q, 79 . 82 . 77 ^ 

LOCREL=0 

CALL INITTa20> 
OUTPUT EXPLANATION LABEL 

CALL NOTATEC 120.. 76Q.. 30. LCENTR > 
PRINT FFORM OUTPUT LABEL 

CALL NOT ATE( 120.340.15. LFFORM ') 
MOUE TO C200.740>.<400.740>. AND <:600.740>. DRAW l^RTICAL LINES. 

DO 50 K=1.3 

CALL MOUABS<:K:*200.740:> 

CALL DRWREL<0.-160> 

CALL ANMODE 
OUTPUT 9 JUSTIFIED NUMBERS 

DO 200 J=1.3 

DO 100 1=1.3 
FORMAT ENTRIES OF A. USING AG-II NUMERIC ROUTINES 
FILL CHARACTER IS * 

CALL FFORM< A< I >. 8. 1 . I ARRAY. 42 > 
PRINT OUTPUT OF FFORM NEAR THE BOTTOM OF THE PAGE 

CALL NOTATEC 200:*: I .. 308 . 8 .. I ARRAY .) 
KEY TAKES UALUES -1.0. AND 1. SO LEFT. CENTER. AND RIGHT JUSTIFY 

KEY=J-2 
WIDTH AND FILL CHARACTER INPUT TO JUSTER MUST BE THE SAME 
AS IN FFORM 
lOFSET IS AN INCREMENT TO BE ADDED TO THE X COOFtDINATE 

OF THE OUTPUT POSITION 

LEN IS THE LENGTH OF THE STRING RETURNED BY JUSTER. WITH 

FILL CHARACTERS DELETED 

CALL JUSTER< 8 . 1 ARRAY . KEY . 42 .. LEN . I OFSET > 
OUTPUT THE NUMBER 

IF THE LAST ENTRY OF NOTATE IS ONE CHARACTER OF A LARGER ARRAY 
THAT CHARACTER AND ALL THAT FOLLOl-J ARE OUTPUT 
1 00 CALL NOTATEC I *200+ 1 OFSET . 700-LOCREL . LEN .. I ARRAYS 8-LEN+ 1 > > 
C * INCREASE THE ADJUSTMENT TO THE Y LOCATION OF OUTPUT 
200 LOCREL=LOCREL+40 

CALL FINITT(0.150> 
END 



c 


t 


c 


t. 


c 


t 


c 


t 


c 


t 


c 


t 


50 


c 


t 


c 
c 




c 


* 


r 


t 


c 
c 
c 


% 
t 
t 


c 
c 
c 


t 

Ha 


c 

c 
c 


* 
* 



CENTER LINES FOR JUSTIFICATION 



H . 2E+07 P . 1 
1.2t+07 1 
1 . 2E-»-0tJ . II 



'>' f 



123.= 



OUTPUT OF FFORM 
*l.2E-^07 



ttttt&.t 



***123.5 



Use of JUSTER 
Figure 2.13.4 



4010A02 USER 



2-35 



SECTION 3 



DESCRIPTION OF AG-II TABLE CONTROLLING ROUTINES 



Description of AG-II Table Controlling Routines 

The Advanced Graphing II Package centers around the use of a COMMON Table 
which contains all the variables necessary to display a graph 
complete with axes, labelled tic marks, grid, and remote exponent where 
necessary. It also includes variables to specify the window position, 
the type of line (solid, dashed, etc.), data point symbols, and increments 
between data points or symbols. These variables are stored as full word 
real values, which are initialized by BIN ITT to reasonable default values. 
The COMMON setting routines included in this section may be called at any 
time after initialization to change the values in COMMON. The values are 
entered as integers in the COMMON setting routines (except DLIMX, DLIMY, 
SIZEL, SIZES, and INFIN),and are then converted to real values for storage. 
If the user has specific requirements for the appearance of the graph, in- 
dividual routines are available to set the variables, with the exception of 
five variables concerning label length and position; these are set internally 
to prevent labels from being overcrowded. (See Table I on page 58-60). 
The values of the COMMON Table variables are available at any time after 
initialization for the use of the internal routines which set up and display 
the actual graph. 

Section 4.4 contains the general COMMON access and storage routines. One 
subroutine, COMSET, may be used to set any variable in COMMON, and function 
COMGET can call forth the current value of any variable in COMMON. The use 
of these subroutines are described in detail in Section 4.4. 



4010A02 USER 



3-1 



Location Variable 



TABLE I 
Advanced Graphing II Common Variables 

Description 



Initial 
Value 



SECTION I. DATA CURVE VARIABLES 



Subroutines Used 
To Set Value 






CLINE 


Type of line used in plots 


0. 


LINE 


1 


CSYMBL 


Symbol used for point plots 


0. 


SYMBL 


2 


CSTEPS 


Increment between symbols 


1. 


STEPS 


3 


CINFIN 


Infinity 


1.E30 


INFIN 


4 


CNPTS 


Number of points for non-standard 
array 


0. 


NPTS 


5 


CSTEPL 


Increment between points in lines 


1. 


STEPL 


6 


CNUMBR 


Actual number of points in this 
plot. 


JD. 


Set Internally 


7 


CSIZES 


Symbol size- Shading density on bars 


1. 


SIZES 


8 


CSIZEL 


Line size - Bar width 


1. 


SIZEL 



SECTIONS II AND III. AXIS VARIABLES ^ 



^ CYNEAT ^^^^ ^^^ ^^^^ ^^^^ 



CXZERO 
1 CYZERO ^^^° suppression flag 



2 ^YLQ^ Location of axis 



3 ^YLAB "^^P^ °^ ^^^^^^ 



CXDEN 
CYDEN 



Density of tic marks 



CXTICS 
5 CYTICS Number of major 

tic mark intervals 



CXLEN 



CYLEN Length of major tic marks 



l.(ON) 



l.(ON) 



0. 



1. 



8. 



0. 



XNEAT 
YNEAT 



XZERO 
YZERO 



XLAB 
YLAB 



XDEN 
YDEN 



XLOC XLOCTP 
YLOC YLOCRT 



XTICS 
YTICS 



Vertical height of XLEN 

current character YLEN 

_slz£ 



(continued) 

^Sections II and III (X Axis Variables and Y Axis Variables) have been 
combined in this chart for ease of reference. 



3-2 



4010A02 USER 



TABLE I (continued) 
Advanced Graphing II Common Variables 



Location Variable 



Description 



Initial Subroutines Used 
Value To Set Value 



SECTION II AND III. AXIS VARIABLES 



CXFRM 
CYFRM 



Form of major tic marks and Axis 



XFRM 
YFRM 



CXMTCS 
CYMTCS 



Number of minor 
tic mark intervals 



XMTCS 
YMTCS 



CXMFRM 
CYMFRM 



Form of minor tic marks 



XMFRM 
YMFRM 



W 



CXDEC 
CYDEC 



Number of decimal places in labels 



Set Internally 



11 
12 



CXDMIN 
CYDMIN 

CXDMAX 
CYDMAX 



Data Minimum 



Data maximum 



DLIMX 
DLIMY 

or 

MNMX 



13 
14 



CXSMIN 
CYSMIN 

CXSMAX 
CYSMAX 



Screen minimum 



Screen maximum 



icr. nor ^LIMX 

M^V.^^ . SLIMY 
(1024 addressing) 

900,700 ^^ 
(1024 addressing) PLACE 



15 



CXTYPE 
CYTYPE 



Type of data 



1 



XTYPE 
YTYPE 



16 



CXLSIG 
CYLSIG 



Least significant digit 



Set Internally 



17 



CXWDTH 
CYWDTH 



Maximum label width 



XWDTH 
YWDTH 



18 



CXEPON 
CYEPON 



Exponent 



Set Internally 



19 



CXSTEP 
CYSTEP 



Number of label steps 



Set Internally 



20 



CXSTAG 
CYSTAG 



Type of label form 



Set Internally 



21 



CXETYP 
CYETYP 



Exponent Type 



XETYP 
YETYP 



22 



CXBEG 
CYBEG 



Beginning location for major tic marks 



0. 



Set Internally 



23 



CXEND 
CYEND 



Ending location for major tic marks 



Set Internally 



(continued) 



4010A02 USER 



REV A, NOV 1980 



3-3 



TABLE I (continued) 



Location Variable 



Description 



Initial Subroutines Used 
Value To Set Value 



24 


CXMBEG 
CYMBEG 


Beginning location for minor tic marks 


10. 


Set Internally 


25 


CXMEND 
CYMEND 


Ending location for minor tic marks 


0. 


Set Internally 


26 


CXAMIN 
CYAMIN 


Calculated data 
Minimum 


la. 


Set Internally 


27 


CXAMAX 
CYAMAX 


Calculated data 
Maximum 


0. 


Set Internally 



The location values are useful when using COMSET and COMGET to change or read 
any of these variables. 



3-4 



4010A02 USER 



3.1 Individual Table Setting Routines 

Descriptions of the routines which perform similar functions for 
each axis have been grouped in the following sections. For example 
a description of the neat tic mark variables (CXNEAT and CYNEAT) 
is followed by a combined subroutine description for the variable 
setting routines XNEAT and YNEAT. 

Remember that all values except the data limits , line and symbol 
sizes, and machine infinity are entered as integers and are then 
converted internally to real values for storage. 



401 0A02 USER @ 3-5 



3.1.1 Line Type - CLINE 

This full word real value specifies the type of line to be 

drawn between points on the graph. Valid values for this 

field are specified in the chart below. The initial value is set at 

"1" for a solid line and can be changed by a call to LINE. 



11 



-1 



-2 



-3 



-4 



-11 



SOFTWARE* 
DASH 



ALTERNATES MOVES AND DRAWS BETWEEN DATA POINTS 

DOT ( ..... ^ 

DOT DASH (— ♦- — ;— ) 

DASH ( - ) 

LONG DASH ( ) 

SOLID 
NO LINE 
VERTICAL BAR 
HORIZONTAL BAR 
POINT PLOT 



] 



USER LINE 



* See the Terminal Control System User's Manual for details of the 
software dashed line. 



3-6 



4010A02 USER 



Subroutine LINE 

LINE specifies the type of line to be drawn between data points 
on the graph. 

Calling Sequence: 

CALL LINE (I VALUE) 

Parameter Entered: 

I VALUE is the coded integer value for the 

appropriate line style from the 

chart on page 3-6 



4010A02 USER 



3-7 



DIMENSION XARRAV<4>..YARRAY<?> 

Of^TA XARRAY/-t ... 6 ... 22 ... 2 . 5^' 

DATA YARRAYz-e . .. 21 1 . . 1 14 . . 306 . , 354 . . 291 . 325 . / 

CALL INITTCSe.') 

CALL BINITT 
C * DRAW DASHED LINES 

CALL LINE<:5232> 

CALL CHECK<XARRAY.Y ARRAY) 

CALL DSPLAY< >(ARRA Y . YARR AY .'> 

CALL TINPUT<I.> 

CALL FINITT<0,700> 
STOP 
END 



400 



350 



300 



250 



200 



150 



100 











-^. 














^'" 


/' 




,--" 


^ 








/ 

/ 

/ 




v 


^^ 




- 


y 


i 

/ 


/ 

9 










- 


\ 

v 


/ 
/ 

t 












- 


N 

1 


/ 

V 




1 


1— 


— 1 — 


1 



2? 



24 



26 



28 



30 



32 



34 



36 



Line Type Designation 
Figure 3.1 



3-8 



@ 



4010A02 USER 



3.1.2 Data Point or Bar Chart Symbols - CSYMBL 

This full word real variable specifies the symbol to be 
drawn at the data point if a data curve is plotted, 
or the type of shading lines to be used if a bar chart 
is plotted. The following chart shows possible values 
for data point symbols. (Bar chart symbols are described 
in detail in section 2.8 ) 



DATA POINT SYMBOLS 



VALUE 












RESULT 


13 






None 






No symbol 


1 






O 






Drawn circle 


2 






X 






Drawn "X" 


3 






A 






Triangle 


4 






D 






Square 


5 






* 






Star 


6 






O 






Diamond 


7 






1 






Vertical bar 


8 






+ 






Cross 


9 






t 






Up arrow below point 


liO 






1 






Down arrow above point 


11 






V 






Reverse Triangle 


12 -32 






Reserved 


for 


further Tektronix Development 


33 < SYMBOL < 


127 


Correspor 


idinc 


) ASCII hardware character centered on 








point (see ASCII 


Table in Appendix C). 


SYMBOL > 


127 




Reserved 


for 


further Tektronix development 


Negative 


Values 


Control 


will 


be 


passed to user function routine 








(USERS). 









4010A02 USER 



3-9 



Initial value of this field is j8, indicating that no symbol 
is to be used at the points and no shading lines in the 
bars. 

Size may be adjusted by calling SIZES as described in 
Section 3.1 .8. 

Subroutine SYMBL 

Subroutine SYMBL designates the symbols at data points, 
or the shading lines for bar charts. 

Calling Sequence: 

CALL SYMBL (IVALUE) 

Parameter Entered: 

IVALUE is the value representing the symbols 
or shading desired. 

For a scatter plot without a line through the data point, 
perform 

CALL LINE(j3) 

CALL SYMBL (IVALUE) 



NOTE: Points and symbols drawn outside the virtual window 
will be clipped. Symbols drawn at points inside the 
window will not be clipped. 



3-10 



4010A02 USER 



e 






•-K- 



«-.. 



Symbols Available 



D I MENS I ON KARRA YC 4 > .. YrtRRA Y< 7 > 

DATA XARRAY>~1 ... 6 ... 22 ... 2 . 5.' 

DATA YARRAY.'-6 ... 21 1 ... 1 14 . .. 306 . . 354 . . 291 

CALL INITT<:30.> 

CALL BINITT 

C * DRAW A SYMBOL AT ALL DATA POINTS 

CALL SYMBLC6> 

CALL CHECK<XARRAY.YARRAY.> 

CALL DSPLAY< >i:ARRAY . YARR A Y ) 

CALL TINPUT<I> 

CALL FINITT<0.700> 
STOP 
END 



480 



4 
5 

6 

7 

8- 

1 

11 



r 



525 . / 



350 



300 



250 



200 



150 



100 




Data Point Symbols 
Figure 3.2 



4010A02 USER 



3-11 



DATA XARRAY/-1..6..22..2.5/ 
D^TA YARRftY.'6 /211..114..306. 
CALL INITT<:30> 
CALL BINITT 
C » NO DATA LIhC ONLY A SCATTER-PLOT 
CALL XFRrK4> 

YFRIK4> 

STEPSC 1 > 

LINE^> 

SIZES<2. > 

SYriBL<6> 

CHECK< XARRAY, YARRAY > 

DSPLAY< XARRAY.. YARRAY > 

TINPUK I > 

FINITK 0.700) 



354. .291. .325/ 



CALL 
CALL 
CALL 
CALL 
CALL 
CALL 
CALL 
CALL 
CALL 
STOP 
END 



400 



359- 



300 ■ 



250 



200- 



150- 



100' 



O 



O 



r . I ■ I 



1 1 1 1 , 1 1 1 1 1 1 1 r 

22 24 26 28 38 32 34 36 



I ■ I ■ I 



Scatter Plot 
Figure 3.2.1 



3-12 



4010A02 USER 



3.1.3 Symbol Increments - CSTEPS 

COMMON Table location CSTEPS contains a real variable which 
designates the increment between data point symbols. 

Any time symbols are used, the first data point will be marked 

with a symbol. Thereafter, symbols will appear only at 

the designated increments. The following chart shows possible 
entries and results. 

VALUE RESULTS 

1 Designates symbols on every data point. 

2 Designates a symbol on every second 

data point after the first. For example, 
data points 1, 3, 5, 7, etc., will 
be marked with symbols. 

3 Designates a symbol on every third 
data point after the first. In this 

case, the first, fourth, seventh, tenth 
data points will be marked with symbols. 

N Any increment desired. 

Note: Lines will be drawn to every data point unless otherwise 
specified in CSTEPL, (Section 3.1.6) but the symbols will 
occur only at the increments designated. CSTEPS is checked for 
plotting only if symbols have been designated in CSYMBL. 
Otherwise it is disregarded. The initial value is 1. 

Subroutine STEPS 



Subroutine STEPS designates the increment between data point 
symbol s . 

Calling Sequence: 

CALL STEPS (I VALUE) 

Parameter Entered: 

I VALUE is an integer value which designates 

the frequency of the data point symbols. 

Note: CSTEPS is defined in terms of points plotted. If 
every other point is used for the line portion (Section 3.1.6) 
and CSTEPS is set to two, then every second line point 
(every fourth data point) will have a symbol. 



4010A02 USER 



3-13 



D I MENS I OH XmPAW 4 > .. Y ARR A Y< 7 > 
DATA XARRAY.'~1 . .. 6 . .. 22 . .• 2 . 5x- 
DATA YARRAY.--6 ... 211 ... 1 14 . .. 366 . . 354 ... 291 . 
CALL INITK3Gi> 
CALL BINITT 
C * DRAW A SYMBOL ON EUERY OTHER DATA POINT 
CALL STEPS<2> 
CALL SYNBL<:6> 
CALL CHECKX KARRA Y . Y ARRAY > 
CALL DSPLAY< XARRAY .. YARRAY > 
CALL TINPUT<I.> 
CALL FINITT(:0..700> 
STOP 
END 



325 . y 



408 



350 



300 



250 



200 



1 50 



100 



- 
















- 








^ N 


\ 




- 


- 










N 


^ 




4 
















- 
















- 


















1 


1 


• 


1 


1 


1 





24 



26 



28 



30 



32 



34 



36 



Stepped Symbols 
Figure 3.3 



3-14 



4010A02 USER 



3.1.4 Machine Infinity - CINFIN 

This real value designates a large floating point value 
acceptable by the hardware being used. The initial value will 
vary according to the system. 

Subroutine INFIN 



INFIN sets the value of the large floating point value 
acceptable to the hardware being used. 

Calling Sequence: 

CALL INFIN (VALUE) 

Parameter Entered: 

VALUE is a large floating point value 
acceptable. 

This number is used in the data scanning routines for initial- 
ization and in the curve plotting routine to designate missing 
points. It does not need to be the largest number the machine 
will handle; it only needs to be larger than any legitimate 
data value. 

CINFIN is primarily useful to designate missing data points. 
If any data point is encountered which is larger than CINFIN, 
it is ignored. It may be used to make several Y arrays line 
up against a single X array rather than require a separate 
X array for each Y array. (See Section 4.1.1.) An example 
of such use is found in the plot at the back of this manual 
titled "MANPOWER IN BUILDING DESIGN". Designer four was not 
hired until period 308. 



4010A02 USER 



3-15 



3.1.5 Number of Data Points - CNPTS 

The value in CNPTS designates the number of data points in 

a plot for a non-standard data array. This value is initialized 

to la. 

Subroutine NPTS 

NPTS sets the number of data points to be plotted for a non- 
standard array (i.e., an array that does not have the data length 
as its first value). 

Calling Sequence: 

CALL NPTS (IVALUE) 

Parameter Entered: 

IVALUE is the integer value specifying the 
number of data points to be plotted. 

This feature was included to permit the use of this package 
with existing applications. It is suggested that this feature 
not be used if the standard form can be used, as the standard 
form has two advantages over the non-standard. 

1. Standard form permits use of arrays of different lengths 
without setting CNPTS. 

2. Standard form may be used with short form which 
is especially convenient for calendar data. 



3-16 



4010A02 USER 



D I MENS I ON XARRA Y< 6 > .. Y ARR AY< 6 !> 
C * A NON-STANDARD ARRAY OF FINE POINTS 

DATA XARRAY.-22 . ©.. 24 . 5. 27 . 8.. 29 . 5.. 32 O.. 34 5' 

DATA YARRAY'- 21 1 . .. 114 . .. 306 . . 354 . . 291 . 325 / 

CALL 1NITT<:30::' 

CALL BINITT 
C * ENTER THE NUMBER OF DATA PTS IN THE ARRaV 

CALL NPTS<6> 

CALL CHECK/s KARRAY . Y ARRAY > 

CALL OSPLAY< XARRAY . YARR AY > 

CALL TINPUT<I> 

CALL FINITT<0.700> 

STOP 

END 



400 



350 



300 



250- 



>00 



150 



100 



* 
















_ 








^ 


\ 


^ 


^ 












N 






- 




/ 












- 


\ 


/ 












- 




J 














1 


• 


1 


1 


* 







Use of NPTS for non-standard 
Data Array 

Figure 3.4 



4010A02 USER 



3-17 



3.1.6 Increments between Line Connected Data Points - CSTEPL 

The real variable CSTEPL indicates the increment between data 
points which the lines will connect. The first data point 
will always appear as the beginning point of the line, and the 
increment factor will be followed thereafter. 

Subroutine STEPL 

This subroutine is called to establish the increment between 
data points which will be connected by lines. 

Calling Sequence: 

CALL STEPL (I VALUE) 

Parameter Entered; 



I VALUE 



is an integer value specifying the 
frequency of the data points to be 
connected. See the value table below. 



VALUE 
1 
2 



RESULTS 

Lines will be drawn between ewery data point. 

Lines will be drawn between every other data 
point. (Data points 1, 3, 5, etc., will be 
connected by lines. ) 

Lines will be drawn between ewery third data 
point. (Lines will be drawn directly from 
data point 1 to 4 to 7, etc.) 



etc. 



STEPL Value Table 



Note: This variable also affects the appearance of symbols on 
data points. The variable CSTEPS is defined in terms of CSTEPL 
If CSTEPL is set to 2 and CSTEPS is 3, then every sixth point 
will be designated. In other words, data points 1, 3, 5, 7, 
etc., would be connected with lines and symbols would appear 
on data points 1, 7, 13, etc. 



3-18 



4010A02 USER 



standard 
Graph 



400 



300 



200 



100 







^ 


\^ 




V 


1 


V 




\ 


' 






1 1 T 1 


1 1 1 1 


1 1 1 1 



20 



25 



Dl HENS I ON XARRAY(7).Yf*RRAY(7) 
DATA XARRAV/6 . , 22 . 0, 24 . 5, 27 , 0, £9 . 5, 32 . , 3-4 . 5/ 
DATA YARRAV/6. .211. ,114. ,306 ,354. ,291., 325/ 
CALL INITT(30) 
CALL BIN ITT 
DRAW THE CURUE SKIPPING EUERY OTHER DATA POINT 
CALL STEPL(2) 
CALL CHECK(XARRAY,YARRAY) 
CALL DSPLAY(XARRAY,YARRAY) 
CALL TINPUT(IUY) 
CALL FINITT(0,700) 
END 

400 



350 



500 



250 



200 



150 



100 



*" 
















- 
















- 






^ 










- 
















- 
















- 


















1 


1 


1 


1 


1 


' 





22 24 26 28 30 

Skipped Data Points 
Figure 3.5 



32 



34 



4010A02 USER 



36 



3-19 



3.1.7 Number of Points in Plot - CNUMBR 



The full word 
in the plot. 



real variable CNUMBR contains the number of points 
CNUMBR is set internally only. 



3.1.8 Symbol Size - CSIZES 

If a line is designated in CLINE, and symbols are specified, CSIZES 
is a multiplicative factor indicating symbol size. If a bar chart 
is designated in CLINE, CSIZES specifies the distance in raster units, 
between the shading lines, if used. All bar chart specifying 
information may be entered at once using HBARST or VBARST as 
described in Section 2.8. 

Subroutine SIZES 

SIZES sets the size of the data point symbol if a symbol has been 
specified with subroutine SYMBL. 

Calling Sequence: 

CALL SIZES (VALUE) 

Parameter Entered: 

VALUE is the real multiplicative factor specifying 
the size of the data point symbols, or the 
distance in raster units between bar chart 
shading lines. 

Example of multiplicative factor: 
VALUE=1.5 specifies a symbol 1 1/2 times the 
standard size. 
=2. specifies a symbol twice the standard 
size. 

Note: This is one of the few routines which require real values 
as parameters. 



3-20 



4010A02 USER 



DIMENSION XARRAV<:4>.YARRAY<7> 

Dl^TA KARRAY. -1 ... 6 ... 22 ... 2 5/ 

DATA YARRAY.^'6 . .. 211 . . 1 14 . . 386 . .. 354 ... 291 . . 325 / 

CALL INITT<30> 

CALL BIN ITT 
C * CALL TO CSIZE TO CHANGE SIZE OF SYMBOLS 

CALL SIZESCS. > 

CALL SYMBLC6) 

CALL CHECK< XARRA Y . YARRA Y .:• 

CALL DSPLAY<::^ARRAY.Y ARRAY) 

CALL FINITT<0..700> 
STOP 
END 



480 



350 



300 



250 



200 



150 



100 



- 








ife 














^ 


y^ 


\ 




^ 








/ 




> 


Y 




< 


< 


/ 


t 










- 


\ 


/ 












- 


s 


y 














1 




•■ 


1 


1 


1 





Symbol Size Variation 
Figure 3.6 



4010A02 USER 



3-21 



3.1.9 Data Line Size (Width) - CSIZEL 

The value in CSIZEL specifies the size of the line if a curve 
plot is being used, or the distance between shading lines if 
bar charts are being used. 

A subroutine is not provided to vary line width, but the user 
may write his own routine for this purpose using dummy routine 
USERL. The width of the bar for bar charts is set by 
calling HBARST, VBARST, or SIZEL. All bar chart specifying 
information may be entered at once using HBARST or VBARST as 
described in Section 2.8. If SIZEL is used, bar charts and 
shading must have been specified with calls to LINE and SYMBL. 

Subroutine SIZEL 

SIZEL sets the width of the bar used for bar charts. 



Calling Sequence: 

CALL SIZEL (VALUE) 
Parameters Entered: 

VALUE is a real value designating the width 
in raster units of the bars. 



Note: This is one of the few routines which require real 
values as parameters. 



3-22 @ 4010A02USER 



3.2 X and Y Axts Variables and Setting Routines 

The COMMON variables which contain the information to set the appearance 
of the X and Y axes are described in the following section. Each set 
of X and Y axis variables are followed by the subroutines which 
are called to set them. 



4010A02 USER @ 3-23 



3.2.1 Neat Tic Marks - CXNEAI CYNEAT 

These full word real variables contain the value "JD" (off) 
or "1" (on) indicating whether "NEAT" tic marks are desired. 
Initial value will be "on", forcing the tic marks to fall at 
"neat" intervals rather than raw data intervals. The user 
programmer can alter the value of these words by calling 
XNEAT or YNEAT and passing the condition that he wishes to 
prevail. 

As "NEAT" is defined, the size of the tic mark interval 
must be 1, 2, 2.5, or 5 times the integer power of 10. 
For example, "neat" tic mark intervals might be 100, 2000, 
25, 50, etc. 

Subroutines XNEAT and YNEAT 

These two routines set the values of the neat tic mark variables 
in COMMON. 

Calling Sequence: 

CALL XNEAT (I VALUE) 
CALL YNEAT (I VALUE) 

Parameters Entered: 

I VALUE Ts an integer power desired for the 

neat tic mark flaq. 

= raw data tic mark values 

1 = neat tic mark values 



3-24 @ 4010A02 USER 



D I MENS I ON X ARRf:^ Y<: 4 > .. YARR A ¥•:; 7 > 
DATA XARRAY/'-^l ... 6 .. 22 ... 2 . f=i ' 

DATA YARRAY.--6 ... 21 1 ... 1 14 . .. 396 . . 354 . .. 291 . .. 325 
CALL INITT<:30:> 
CALL BINITT 
C * TURN OFF THE NEAT TIC FLAG 
CALL XNEAT<0> 
CALL YNEATt:©) 
CALL CHECKCXf^RRAY..YARRAY> 
CALL DSPLAYC XARRAY.. YARRAY > 
CALL TINPUT<I> 
CALL FINITTC0..700> 
STOP- 
END 



354.0 



306 



258 . 



210 



162 



114 0— 




22 00 23.79 25.57 27.36 29.14 30.93 32.71 34.50 



Non-Neat Tic Mark Values 
Figure 3.7 



4010A02 USER 



3-25 



3.2.2 Zero Suppression - CXZERO, CYZERO 

These full word real variables contain the values "0" (off) 
or "1" (on) indicating whether zero is to be suppressed. 
An "on" indicates that the zero value will not appear on the 
graph unless the value of the data being plotted approaches 
zero. These variables are changed through routines XZERO 
and YZERO. 

Subroutines XZERO and YZERO 

These routines set the j3 suppression flag for the X and Y tic 
mark values in AG- I I COMMON. 

Calling Sequence: 

CALL XZERO (IVALUE) 
CALL YZERO (IVALUE) 

Parameters Entered: 

IVALUE is the integer value wished for the 
zero suppression flag. 

= Zero will always appear as 

part of the Graph. 

1 = Zero will appear as part of the 

graph only if data includes zero 
or a point close to it. 



3-26 (S) 401 0A02 USER 



DIMENSION XARRfHY< 4 >.. YARRHY<: 7 > 
DATA XARRAY/~1 ... 6 ... 22 ... 2 . 5-' 
DATA YARRAY.-6 ... 21 1 ... 1 14 . . 306 . 
CALL INITTC30> 
CALL BINITT 
C * INCLUDE ZERO ON THE DISPLAY 
CALL XZERO(0> 
CALL YZEROCO) 
CALL CHECK< Xf^RRAY .. YARR AY > 
CALL DSPLAY< XARRAY . YARRAY > 
CALL TINPUKI.> 
CALL FINITT<0.700> 
STOP 
END 



354. .291 . .325. -' 

















v^ 
















V 


POR 










\ 
















\ 






- 










\/ 






\Q\f\ 










V 






R .. 


















1 1 1 1 


1 1 1 1 


1 1 1 1 


1 1 1 1 









Non-Suppression of Zero 
Figure 3.8 



4010A02 USER 



3-27 



3.2.3 Axis Location - CXLOC and CYLOC 

These full word real variables specify the location of the 
axes (with all appended tic marks and labels) with respect to 
the screen minimums. The values placed in these variables 
are in raster units with a positive value indicating the 
distance above the X axis screen minimum or to the right of 
the Y axis screen minimum, and a negative value indicating 
the distance in the opposite direction. 

Four user called routines are available to set the axis locations 
XLOC and YLOC require parameters which designate the distance 
from the screen minimum locations at which the axes are to be 
located. XLOCTP and YIOCRT require parameters which designate 
the distance from the screen maximums at which the axes 
are to be located. 

That is, to move the axis to the opposite side of the screen 
(to the top or left side) XLOCTP or YLOCRT should be called 
with a parameter value of j9. 

These variables are intitalized to J3. 

Subroutines XLOC and YLOC 

These routines set the locations of the X and Y axes, complete 
with labels and tic marks, in relation to the left and lower 
edges of the screen window. See Figure A. 4. 

Calling Sequence: 

CALL XLOC (I VALUE) 
CALL YLOC (IVALUE) 



Parameters Entered: 
IVALUE 



is the integer number of raster units 
the axes will be offset from the lower 
edge of the data window (subroutine 
XLOC) or from the left edge of the 
data window (subroutine YLOC). 

A positive value will move the axis 
upward (if XLOC is called) or to the 
right (if YLOC is called). A negative 
value will move the axis downward 
(if XLOC) or to the left (if YLOC). 

Example: The following figures show 
sample results with an offset of 
30 raster units. 



3-28 



4010A02 USER 



20 

10 
5 




r 



r 

4 



1 



Tl 



r 

2 



r 

3 



r 

4 



XL0C{3jD) 

xLOc(ja) 

XLOC(-30) 



YL0C(-3JD) 
YLOC(ja) 
I YLOC(30) 



20-i20-n 



15-|15 

I 
10-,10- 

I 
5-j 5-1 

I 
0- 



20n 



15-1 



10-1 



5-1 



-e-^ 



I r^ 



Axis Location Change Using 
XLOC or YLOC 

Figure 3.9.1 



4010A02 USER 



3-29 



Subroutines XLOCTP and YLOCRT 

These routines set the locations of the X and Y axes, complete 
with labels and tic marks, in relation to the right and upper 
edges of the screen window. 

Calling Sequence: 

CALL XLOCTP (I VALUE) 
CALL YLOCRT (I VALUE) 



Parameters Entered: 
I VALUE 



is the integer number of raster units 
the axes will be offset from the top 
of the data window (XLOCTP) or from the 
right edge of the data window (YLOCRT). 

A positive value will move the axis 
upward (XLOCTP) or to the right (YLOCRT) 
A negative value will move the axis 
downward (XLOCTP) or to the left 
(YLOCRT). 

Example: Values of +30, 0. and -30 
would place the axes in the locations 
shown. See Figure A. 5 and Figure A. 6, 



1 



XinCTPf30) — 


2 

J _ 


3 

_J _ 




2 

1 


3 


ALOCTPiJDj ' 


2 


3 


XL0CTP(-3jD) ^ - 


. _L _ 


. _1 _ 



_J 

4 



4 



20 

- 15 

- 10 
5 

L- 



4 5 

-• — ?e4-20 - 20 



Ul5 



M 



^ 



L 







-15 L 15 



-10 ^10 



h-5 ^5 



^ !-o 



I Y LOCRT(30) 
Y LOCRT(0) 
Y L0CRT(-3ja) 



Axis Location Change Using 
XLOCTP or YLOCRT 

Figure 3.9.2 



3-30 



4010A02 USER 



DIMENSION XDATA<: 5 >. YDATw ? >.. ZARRAYC 5 > 



C t 



DATA 
DATA 
DATA 
CALL 
CALL 
CALL 
CALL 
CALL 
LOCATE 
CALL 
CALL 
CALL 
CALL 
CALL 
CALL 
STOP 
END 



780 . .. 632 . . 472 . / 



.XDATA.-'4 ... 1 ...£... 3 ... 4 . .-• 

yDATA'6 . . 328 . .. 632 ... 421 

ZARRAY.>'4 ... 10 ... 13 ... 19 .. 25 . -'• 

INITK120:' 

BINITT 

SLIMY<:200..600> 

CHECKC XDATA. YDATA > 

DSPLAYt: XDATA.. YDATA > 

SECOND AXIS AT TOP OF THE DISPLAY 

DINITX 

XLOCTP(:i00> 

CHECK< ZARRAY. YDATA > 

DSPLAYC ZARRAY. YDATA > 

TINPUTCI? 

FINITTC0.700> 



see 



600 




400 



200 



Axis Location Variation 
Figure 3.9.3 



4010A02 USER 



3-31 



3.2.4 Tic Mark Label Types - CXLAB, CYLAB 

These full word real variables contain the coded values which 
specify the types of labels to be used for the X and Y axes, 
respectively. The default value is 1. If not user set, the 
label type will always match the transformation type (CXTYPE 
and CYTYPE). The user may call XLAB and YLAB to alter the label 
type values at any time before calling CHECK. 

Subroutines XLAB and YLAB 

These routines are called to set the X or Y axis tic mark label 
types in AG- I I COMMON. 

Calling Sequences: 

CALL XLAB (I VALUE) 
CALL YLAB (I VALUE) 



Parameters Entered: 
I VALUE 



is an arbitrary integer value which 
refers to a label type as described in 
the table below. 



Internal Code 


Type 







No Label 




1 


Matches transformation 


type 


2 


Logarithmic 




3 


Days 




4 


Weeks 




5 


Periods 




6 


Months 




7 


Quarters 




8 
Negative 


Years 

User Label + 





Note: This variable is not normally changed except in some 
cases involving calendar data where the labels may be different 
than the data. For example, daily data may be plotted with 
monthly tic marks and labels. 



+ User defined label (See subroutine USESET, System Manual.) 



3-32 



4010A02 USER 



4ee 



standard 
Graph 



360 



206 



100 




DATA 
CALL 
CALL 
DELETE 
CALL 
CALL 
CALL 
CALL 
CALL 
CALL 
STOP 

END 



VARRAY*:: 7 > 
24.5..27,0 
114. ...306. 



I MENS I ON XARR A V( 7 > 
DATA XARRAY. '6 . .. 22 O 

yARRAY.-6. .. 211 . 

INITT<:30::- 
___ BINITT 
C t DELETE THE LABELS 

KLABC ::• 

YLAB<: > 

CHECK( XAPRAY.. Y ARRAY > 

DSPLAY< KARRAY.. YARRAY > 

TINPUT(I> 

FINITTC 0.700 > 



354 



32.0 

291 . 



34 . 5/ 
325 . ^ 




I I I f I 

Tic Mark Label Variation 
Figure 3.10 



4010A02 USER 



3-33 



3.2.5 Tic Mark Density - CXDEN, CYDEN 

A parameter value of 1 to IJD will determine the density of 
the tic marks. If a parameter value between 1 and 5 is chosen, 
only major tic marks will appear; if a value from 6 to IjD 
ts chosen, minor tics will appear, also. The coded values 
from 1 to 5 and from 6 to 10, respectively, will vary the 
number of tics from sparse (1 and 6) to dense (5 and 10).* 
See the chart below. 

If the user has not set the exact number of tic marks he wants 
by calling XTICS or YTICS, subroutine OPTIM uses the density 
factor, along with other pertinent information from COMMON, 
to determine the number of tic marks and the intervals. 

If calendar data is used, no minor tic marks will appear on 
the time axis. The density of the major tic marks will be 
controlled the same as with any other linear data. 

The initial value is 8. 

Subroutines XDEN and YDEN 

These subroutines set the values of the density factors in 
AG- I I COMMON. 

Calling Sequences: 

CALL XDEN (I VALUE) 
CALL YDEN (I VALUE) 

Parameters Entered; 



I VALUE 



No Minor Tics 



is the integer value of the density 
factor to be used in determining 
the frequency of tic marks. The 
table below contains the valid values 

With Minor Tics 



sparse 



dense 



, — , 

1 


6 


2 


7 


3 


8 


4 


9 


5 


IjO 



Tic Mark Density Table 



Density of tics on the 4014 or 4015 Terminal may vary between differ- 
ent cKaracter sizes. For example, a density value of 5 will be more 
dense for character size 4 than for size 1. 



3-34 



4010A02 USER 



400 



300 



standard Graph 



200 



100 




1 MENS I ON XARR A Y< 4 > .. Y ARR A Y< 7 > 
DPiTA XARRAY.--1 ... 6 ... 22 ... 2 . 5.- 



DATA YARRAY'6 
CALL INITT<30> 
CALL BINITT 
C -^ SET THE DENSITY OF THE TICS 
CALL XDENCie> 
CALL YDEN<10) 
CALL CHECKCXARRAY.YARRAY) 
CALL DSPLAY< XARRAY . YARRAY ) 
CALL TINPUT<I> 
CALL FINITT<:0,700> 
STOP 
END 



211 . .114. ..306.. .354. ..291 



4010A02 USER 



3-35 



360-r 



340 

320- 
300- 
280- 
260- 
240- 
220- 

200- 

180- 
160. 
140. 



- 














_/ 


^ 












- 












> 


z' 




\ 








^ 


- 










i 


y 








\, 


^ 


^ 




- 










/ 










S 


^ 






- 










/ 


















- 










/ 


















- 








i 


f 


















- 


v 






/ 




















- 


\ 






/ 




















- 


\ 


V 




/ 




















- 




\ 


/ 






















- 




. -B^ 


J 






















- 




i 


V 
























ifiwnw 


imiim 


Himin 


iimiin 


nniiiii 


niiiRii 


Miiniii 




IRIIRII 


mmiii ftt«»iiN 


II 


pNWI^ 



120. 



100 — 



Tic Mark Density Variation 
Figure 3.11 



3-36 



4010A02 USER 



Density Factor 

I 1 1 1 1 1 1 

1 28.0 22.5 25,0 27.5 30.0 32.5 35.8 



I T" — n 1 1 1 1 

2 20.0 22.5 25.0 27.5 30.0 32.5 35.9 



I , , ^ , 1 1 1 

22 24 26 28 30 32 34 36 



I I 1 1 1 1 1 1 

22 24 26 28 30 32 34 36 



I I 1 1 1 1 1 1 1 1 1 1 1 1 

22 23 24 25 26 27 23 29 30 31 32 33 34 35 



I 1 I I I I I I I I I I I I I I i I I t [ I I I I I I I I I I 

6 20.0 22.5 25.0 27.5 30.0 32.5 35.0 



^ 1 I I 1 I I I I I I I I I I I I I I I I I i 1 1 I I ■ 1 I I 

7 20.0 22.5 25.0 27.5 30.0 32.5 35.0 



I « 1 « 1 « 1 » 1 ' 1 ' 1 • 1 

22 24 26 28 38 32 34 36 



I 1 1 1 1 1 -| 1 1 1 1 1 1 1 1 

22 24 26 28 30 32 34 36 



| l ll Wl ll| WHIIW | il l l l ll|I IW IIi [ll«lll i i|i lll ll l H|Wlillll |i» » I IW| ll l li l lll |J li mi ll | II IW Il|W^^ 

10 22 23 24 25 26 27 28 29 30 31 32 33 34 35 

Sample Density Factor Results 
Figure 3.12 

401 0A02 USER @ 3-37 



3.2.6 Major Tic Mark Intervals - CXTICS, CYTICS 

These full word real variables contain the number of tic mark 
intervals to be used on the X and Y axes. Initial value for 
these variables is 0, but the user may set the specific number 
of intervals desired by calling XTICS or YTICS. The actual 
value of each tic location will then be determined internally. 

If the user does not specify the number of tic mark intervals, 
the number will be calculated by the density algorithm, based 
on the density value found in COMMON (CXDEN and CYDEN). 

Subroutines XTICS and YTICS 

With these routines the user sets the values of the number of tic 
mark intervals on the X and Y axes. 

Calling Sequence: 

CALL XTICS (I VALUE) 
CALL YTICS (IVALUE) 

Parameters Entered: 

IVALUE is integer value indicating the number 

of tic mark intervals on the X or the Y axis 

Example: For the following axis with 7 tic marks, the value 
in COMMON would be 6 (the number of intervals). 



11(11 1 



3-38 @ 401 0A02 USER 



D I MENS I OM Vf:;iRRHN*< 4 > .. Y ARR'rt Y«: 7 > 

DATA XARRAY.-l. .6 . ?2 .2 P..- 

DATA YARRAYx-6 . , 211 . .. li4 . .. 306 . 3^.4 .2^1 . 7:-'S / 

CALL INITT'::3Ci::' . -- x . . -^- . 

CALL BINITT 
C t SET THE NUMBER OF TIC INTERUALS FOR EACH AX I?; 
CALL XTICS<8:> 
CALL YTICS<9> 
CALL CHECKC XARRAY . YARRA Y > 
CALL DSRLAY< XARRAY .. YARRAY > 
CALL TINPUT< I.) 
CALL FINITTCe.. 700> 
STOP 
END 



550 — 


















500- 


















ii^n — 




































*TKfK> 


















"3t«%C» 
























^ 


^ ^ 


\ 




- 




!>"=?CI 






/ 




> 










s 


/ 


f 












1 "^Pi 


\ 


/ 














1 npl.i. 


N 


y 














Xt3cJ— ■ 



















24 



26 28 30 32 



34 



36 



38 



Tic Mark Intervals 
Figure 3.13 



4010A02 USER 



3-39 



3.2.7 Tic Mark Length - CXLEN, CYLEN 

These full word real variables indicate the length (in raster 
units) of the major tic marks. Initial value of these variables 
is "20". The user may change these values by 
YLEN. These values refer to the distance the 
to extend outward from the axis line on each 
including any grid lines. 



calling XLEN or 
tic marks are 
side, not 



Example: The part of the tic mark for which length is 
is specified is shown with brackets below. 



TT 



Note; Minor tic marks, if specified, will be half the length 
specified by these fields. 

Subroutines XLEN and YLEN 

These subroutines specify the length of the major tic marks 
on each axis. 



Calling Sequence: 



CALL XLEN (I VALUE) 
CALL YLEN (I VALUE) 



Parameters Entered: 
I VALUE 



is an integer specifying the length 
chosen for the tic marks on the X and 
the Y axes, respectively. 

The length designates the distance 
in raster units that the tic marks will 
extend outward from the axis, not includ- 
ing grid lines. 



3-40 



4010A02 USER 



400 



Standard Graph 



300 



200 



100 



DIMENSION XARRAY< 4 >. YARRAY<: 7 > 
DATA XARRAY-'-l ... 6 .. 22 ... 2 . 5/ 

DATA YARRAY/6 . .. 2U . . 1 14 . .. 306 . , 354 . .. 291 . . 325 . / 
CALL INITT<30.> 
CALL BINITT 
C * CHANGE THE LENGTH OF THE TICS 
CALL XLEN<:40> 
CALL YLEN<40> 
CALL CHECKCXARRAY.Y ARRAY) 
CALL DSPLAYC XARRAY . Y ARRAY > 
CALL TINPUT<I> 
CALL FINITT<0,?00> 
STOP 
END 





24 



26 28 30 32 

Tic Mark Length Variation 

Figure 3.14 



34 



36 



4010A02 USER 



3-41 



3.2.8 Major Tic Mark Form - CXFRM, CYFRM 

These real variables stored in CXFRM and CYFRM determine the 
form of the major tic marks on the respective axes. The form 
for each value (1 through 6) is illustrated in the chart below. 

These variables also determine whether grid lines are to appear, 
either alone or as a continuation of the tic mark (see codes 
5 and 6). The initial value Is 5 (a tic mark with a grid line). 

XLEN and YLEN are called to specify the desired length of 
the tic marks, excluding grid lines. (Grid lines will extend 
exactly to the opposite side of the window if tic mark type 
5 or 6 is chosen.) 

If bar charts are drawn using a call to HBARST or YBARST 

(page 2-20), grid lines parallel to the bars will be suppressed. 

Subroutines XFRM and YFRM 

XFRM sets the form of the X axis major tic marks for the AG-II 
COMMON. 

Calling Sequence: 

CALL XFRM (I VALUE) 
CALL YFRM (IVALUE) 

Parameters Entered: 



IVALUE 



is the coded integer value of the form of 
the tic marks desired. Valid values 
are numbers through 6 as shown 
on the chart below. Types 5 and 6 
include grid lines. 



Results 
Code 



No 
Tics 

or 
Axis 


No 
Tics 


1 


1 




a 


> I 





1 


2 


3 


4 


5 


6 



3-42 



REV A, NOV 1980 



4010A02 USER 



4ee 



Standard Graph 



3ee 




208 



100 



DIMENSION Xf^RRAYC 4 >.. YrtRRAYC 7 > 
Df^TA XARRAY. -^ 1 ... 6 ... 22 ... 2 . 5-' 

DATA YARRAY/6 ... 211 . > 1 14 . .. 306 . .. 354 ... 291 .. 325 . / 
CALL INITT<30> 
CALL BINITT 
C * CHANGE THE FORM OF THE TICS 
CALL XFRMC4> 
CALL YFRM<1> 

CALL CHECKC XARRAY , YARRA Y > 
CALL DSPLAYC XARRAY . YARR AY > 
CALL TINPUT<n 
CALL FINITT<0.700> 
STOP 
END 



408 



350 



380 



250 



208 



150 



108 




'>'> 



n 1 1 1 1 1 r 

26 28 30 32 

Tic Mark Form Variation 
Figure 3.15 



36 



4010A02 USER 



3-43 



3.2.9 Minor Tic Mark Intervals and Form - CXMTCS, CYMTCS, CXMFRM, CYMFRM 

These full word real variables contain the number of minor tic mark inter- 
vals to appear between two adjacent major tic marks. The initial value 
for these variables is JD, but the user may set the intervals by calling 
XMTCS or YMTCS. The actual value of each minor tic location will then be 
determined internally. See the diagram on page 105. 

If the user does not specify the number of minor Tic mark intervals, the 
number will be calculated by the density algorithm, based on the density 
value found in COMMON (CXMTCS and CYMTCS). 

Subroutine XMTCS and YMTCS 

Set the number of minor tic mark intervals between adjacent major tic 
marks. 

Calling Sequence: 

CALL XMTCS (I VALUE) 
CALL YMTCS (I VALUE) 

Parameters Entered: 

IVALUE is the integer value indicating the number of minor tic 
mark intervals between adjacent major tic marks. 



3-44 



4010A02 USER 



Minor Tic Mark Form - CXMFRM, CYMFRM 

These full word real variables designate the minor tic mark 
form for each axis with a code value from the table below, 
(these routines use the same table of tic mark forms as is used 
for major tic marks.) Initial value is 2 and may be changed 
by calling XMFRM or YMFRM. 

Note: Minor tic marks if used, will be half the length of the 
major tic marks. (Grid lines will still extend the full width 
of the screen.) 

Subroutines XMFRM and YMFRM 

This routine sets the form of the minor tic marks on the X 
axis. 

Calling Sequence: 

CALL XMFRM (I VALUE) 
CALL YMFRM (I VALUE) 



Parameters Entered: 
I VALUE 



is the code integer value designating 
the tic mark form desired (1 through 6 
from the table below). 



Results 
Code 



No 




J 




4 


i 


f 


Tics 


1 










1 


2 


3 


4 


5 


6 



Types 5 and 6 extend to the opposite side of the screen, 
forming a grid. 



4010A02 USER 



3-45 



490 



Standard Graph 300 




200 



100 1 I I I I I I I I I I I I 



20 25 
D I MENS I ON XARR A YC 4 > . Y ARR A YC 7 > 
DrtTA XARRAY'-l ... 6 ... 22 .. 2 . 5^ 

OAtA YARRAY.''6..211 .114. .306. .354. ..291 . ,325./ 
CALL INITT<:30> 
CALL BINITT 
C * CHANGE THE FORM OF THE MINOR TICS 
CALL XMFRM<4.> 
CALL YMFRMC3> 
CALL CHECKC X ARRAY , YARRA Y > 
CALL DSPLAY< XARRAY , YARR AY > 
CALL TINPUTCI.> 
CALL FINITTt:0..700> 
STOP 
END 

480 



350 



300 



250 



200 



150 



100 




24 



26 28 30 32 

Minor Tic Mark Form Variation 
Figure 3.16 



34 



36 



3-46 



4010A02 USER 



3.2.10 Decimal Places in Labels - CXDEC, CYDEC 

Common locations CXDEC and CYDEC contain the real variables 
which designate the number of decimal places to be used in the 
labels for the respective axis. 

These values are set by subroutine LWIDTH which takes into 
consideration the space available for the label and whether or 
or not a remote exponent will be necessary. 

Note: The user cannot set these values; they are set and used 
internally only. 



401 0A02 USER @ 3-47 



3-2.11 Data Minimum and Maximum - CXDMIN, CYDMIN, CXDMAX, and CYDMAX 

These full word real values are the data minimums and maximums 
for the X and Y arrays. The initial values of these fields 
are j9. Subroutine CHECK checks to see if these fields have 
been user set. If not, CHECK calls RGCHEK which, in turn, 
calls MNMX which determines the minimum and maximum of each 
array. The values are then entered into the COMMON Table. 
The user may call MNMX which requires the array as a parameter 
and returns the data minimum and maximum which must be entered 
with DLIMX or DLIMY. If you already know the minimum and maximum 
to be entered use DLIMX and DLIMY only. 

DLIMX and DLIMY may be used to force a data window to 
span a greater range than normal if the user sets the 
data minimum to a value less than that of the actual data 
and the maximum to be greater than the actual data maximum, 
or to clip data if the limits are set less than the ( 
actual data limits. 

Subroutines DLIMX and DLIMY* 

DLIMX and DLIMY are called to set the data minimums and maximums 
ot the X and Y axes, respectively, in AG-II COMMON. 

Calling Sequence: 

CALL DLIMX (XDMIN,XDMAX) 
CALL DLIMY (YDMIN,YDMAX) 

Parameters Entered: 

vnllJI! °^ ^^ ^ ^^^^ ^^^"^ ^^ which the data minimum 
YDMIN for the X or Y axis, respectively, to be set 
in AG-II COMMON. 

vHMAv ^"^ 1^ ^^^ ^^^^ ^^^"^ 3^ which the data maximum 

YDMAX for the X or Y axis, respectively, is to be 
set in AG-II COMMON. 



*For calendar data, the OUBGC value is necessary when setting DLIMX 
or DLIMY. 



3-48 @ 401 0A02 USER 



350 



Clipped Window Area 



1 MENS I ON X ARR A Y< ? > . Yf^RR A Y<: 7 > 

DAT<^ XARRAY'-S . .. 22 . 0. 24 . 5.. 27 . Q, 29 . 5. 32 . 8, 34 . 5/ 

DATA YARRAYx 6 ...211.114... 306 . . 354 . . 291 . . 325 . / 

CALL IN1TT<120> 

CALL BINITT 
C % SET NEW DATA BOUNDARIES 

CALL DLIMX(11...4ei. > 

CALL DLIMY< 100 . . 50© . > 

CALL CHECKXXARRAY..YARRAY> 

CALL DSPLA Y< XARRAY . YARRA Y ) 

CALL TINPUT<I> 325 

C % SHOW THE CLIPPING EFFECT 

CALL 3LIMXO00.500> 

CALL SLIMY<200.600> 

CALL DLIMX< 26 . . 32 . ) 

CALL OLiriYC 250 . . 325 . > ^©^ 

CALL CHECK< XARRAY . Y ARRAY ) 

CALL DSPL A Y< XARRAY > YARRA Y > 

CALL TINPUTd) 

CALL FINITT(0..700) 07c; 

STOP 

END 



250 









/ 


^ \ 


\ 








/ 






\ 


\ 














\ 


















r 1 1 1 






1 1 1 1 


1 1 1 1 


1 1 1 1 



500 



400 



300 



200 



100 




Data Limit Usage 
Figure 3.17 

Wote: SLIMX and SLIMY are called to fit tFie example into tFie limited 
page space available. 

The neat tic mark algorithm is in effect, causing the user set data 
limits to be rounded to *'neat" values. 



4010A02 USER 



3-49 



3.2.12 Screen Location - CX$MIN,CY$MIN, CXSMAX, CYSMAX, and PLACE 

These full word real variables are the screen minimums and maximums 
for the X and Y coordinates of the data window. The initial 
values of these positions in the table are set to give a maximum 
size window that will still result in minimum default labeling. 
The initial values are: 



CXSMIN 


150 


CXSMAX 


900 


CYSMIN 


125 


CYSMAX 


700 



so that the screen window will be positioned as follows 




150,125 



9C0,125 



These variables may be set by individual calls to SLIMX and 
SLIMY. 

Subroutine PLACE allows the user to select optional pre-defined 
areas on the screen such as "upper half" or "lower right sixth". 
(See description on page 112.) 

Subroutines SLIMX and SLIMY 

SLIMX and SLIMY are called to set the screen minimum and maximum 
for the X and Y axes in AG- I I COMMON. 

Calling Sequence: 

CALL SLIMX (ISMIN, ISMAX) 
CALL SLIMY (ISMIN, ISMAX) 

Parameters Entered: 



ISMIN 



ISMAX 



is the integer minimum screen location 
in raster units (the value to be entered 
in CXSMIN or CYSMIN). 

is the integer screen location in raster 
units (the value to be entered in 
CXSMAX or CYSMAX). 



3-50 



4010A02 USER 



YARRAYc: 13 
12... 1973.. 
,.200. ..100.. .600 
700.. 900.. . 166..- 



1./ 

.. 400 



DIMENSION .>^:ARRAY<5) 
DATA XARRm''--2... 12. 
DATA YARRAY.'12 

&100..400...200. 

CALL INITK30> 
BINITT 
C * CHANGE THE RECTANGULAR DISPLAY AREA 
SLIMX<359.850> 
SLIMY<:2!50..650> 
CHECK< X ARRAY. Y ARRAY > 
DSPLAY< XARRAY. YARRAY > 
TINPUT<I> 
FINITT<0..700> 



209 . .. 599 



CALL 
CHANGE 
CALL 
CALL 
CALL 
CALL 
CALL 
CALL 
STOP 
END 




Screen Limit Variation Using 
Screen coordinates 
Figure 3.18 



4010A02 USER 



3-51 



Subroutine PLACE 

This routine sets the values of the screen mini mums and maximums 
in COMMON to place the screen window at a predefined location 
on the display area. (See the chart below for the possible 
locations.) 

Calling Sequence: 

CALL PLACE (LIT) 

Parameters Entered 

'LIT' is a literal string of three characters 

specifying the window location desired, 
i.e., STD, UPH, etc. See sample below. 

In most systems it will be necessary 
to enter the literal with a data 
statement. If preferred, the user may 
enter the number of the location as 
shown on the following page. For example 
a parameter value of 6 will specify 
window location in the lower lefthand 
quarter. 












UPH 












LOH 













EXAMPLES: STD Standard 

UPH Upper Half 



UR4 Upper Right Quarter 
LC6 Lower Center Sixth 



3-52 



4010A02 USER 



Screen location of each window 
Location Value 



Standard (STD) 
Upper Half (UPH) 
Lower Half(LOH) 
Upper Left Quarter UL4) 
Upper Right Quarter (UR4) 
Lower Left Quarter (LL4) 
Lower Right Quarter (LR4) 
Upper Left Sixth (UL6) 
Upper Center Sixth (UC6) 
Upper Right Sixth (UR6) 
Lower Left Sixth (LL6) 
Lower Center Sixth (LC6) 
Lower Right Sixth (LR6) 



Screen Coordinates 





XMIN 


XMAX 


YMIN 


YMAX 


1 


150 


900 


150 


700 


2 


150 


850 


525 


700 


3 


150 


850 


150 


325 


4 


150 


450 


525 


700 


5 


650 


950 


525 


700 


6 


150 


450 


150 


325 


7 


650 


950 


150 


325 


8 


150 


325 


525 


700 


9 


475 


650 


525 


700 


10 


800 


975 


525 


700 


n 


150 


325 


150 


325 


12 


475 


650 


150 


325 


13 


800 


975 


150 


325 



NOTE 

The above Screen coordinate values reflect 1024 addressing. 
4096 addressing the values are multiplied by four. 



For 



4010A02 USER 



3-53 



DIMENSION XARRAV(5),VARRAY(13) 

DATA XARRAV/-2 . , la . , 12 . . 1973 . , 1 . / 

DATA VARRAV/12. «2e0. . 190. .600. MCe. .209 ,599.. 
&100.. 400., 200.. 700.. 900.. 166./ 
C t VARIABLES UPH AND LOH ARE 3 ELEMENT LITERALS 

DATA UPH.L0H/'3HUPH.3HL0H/ 

CALL INITT(120) 

CALL BINITT 
C « DISPLAY THE GRAPH IN THE UPPER HALF OF THE SCREEN AREA 

CALL PLACE (UPH) 

CALL CHECKCXARRAV.VARRAV) 

CALL DSPLAYCXARRAV.Y ARRAY) 

CALL BINITT 
C « DISPLAY THE GRAPH IN THE LOUER HALF OF THE SCREEN AREA 

CALL PLACE (LOH) 

CALL CHECK(XARRAY.YARRAY) 

CALL DSPLAY(XARRAY.YARRAY) 

CALL TINPUT(I) 

CALL FINITT(0.700) 

STOP 

END 



1800 




FEBRUARY JUNE OCTOBER 

APRIL AUGUST DECEMBER 

1973 



1000 




FEBRUARY JUNE OCTOBER 

APRIL AUGUST DECEMBER 

1973 



Screen Limit Variation Using PLACE 
Figure 3.19 



3-54 



4010A02 USER 



3.2.13 Data and Transformation Type -CXTYPE, CYTYPE 

These full word real values indicate the types of data that are 
in the X and Y arrays or the type of transformation to be used. 

The acceptable values and external keys are shown in the figure 
below. Initial values of both CXTYPE and CYTPE are "1", 
representing normal or linear type data. The user may change the 
type of graph by calling XTYPE or YTYPE and specifying an alternate 
type. Label type, CXLAB or CYLAB will be changed internally to 
be the same as the transformation type. 
Note: No remote exponent is used with logarithmic data. 

Subroutines XTYPE and YTYPE 

This routine is used to define to the system the type of data 
that is represented in the X or Y array. 

Calling Sequence: 

CALL XTYPE (IVALUE) 
CALL YTYPE (IVALUE) 



Parameters Entered: 
IVALUE 



is a coded integer value defining the 

type of data or the type of transformation 

to be used. Code values are defined 
below. 



Code Value 


Type 


1 


Normal (Linear) Default 


2 


Logarithmic (Ration Scale 


3 


Days 


4 


Weeks 


5 


Periods 


6 


Months 


7 


Quarters 


8 


Years 



4010A02 USER 



3-55 



10. ,11. .12/ 



DIMENSION X ARRAYS 1 3 > .. VARRA VX 1 1 > 

DATA XARRAV/12 ... 1 • 2 ... 3 ... 4 .. 5 ... 6 ... 7 ... 8 ... ^ 

YARRAY< 1 >«10 

DO 100 I«2, U 
1 00 Y ARRAYC I >«FLOAT< I - 1 >1c;*:3 

CALL INITTC30> 

CALL BINITT 

CALL SLIMY<300..700> 
C lc DATA ON X AXIS WILL BE LINEAR WITH LOG DATA ON THE Y 

CALL XTYPE( 1 > 

CALL YTYPE<2> 

CALL CHECKXXARRAY.YARRAYJ 

CALL DSPLAY< XARRAY . YARRAY > 

CALL TINPUT<I> 

CALL FINITK0.700> 

STOP 

END 




Data Type Variation 
Figure 3.20 



3-56 



4010A02 USER 



3.2.14 Least Significant Digit in Labels - CXLSIG, CYLSIG 

These real variables specify the position of the least signif- 
icant digit to be used in computing the width of the tic mark 
labels on each axis. The user cannot set this value; subroutine 
OPTIM will set the value when it computes the form of labels 
to be used for the available width. 

A positive value designates a position to the left of the 
decimal point and a negative value designates a position to the 
right of the decimal point. 

Example: The least significant digits of sample data are 
specified below. 

Data Least Significant Digit Position 

143 +1 

3 +1 

143.1 -1 

143.156 -3 



If these four values were all to be used on the same axis, 
the least significant digit of that axis would be specified 
as -3. 



4010A02 USER @ 3-57 



3.2.15 Tic Mark Label Width - CXWDTH, CYWDTH 

These real variables specify the maximum label width (number of 
characters) usable for tic mark labels on the X and Y axes. 
This information is used by OPTIM to determine the form in 
which the tic mark labels will appear (whether a remote exponent 
will be necessary, etc.). 

These values are initialized to j8, and if the user doesn't 
assign a value, OPTIM calls subroutine WIDTH which determines 
the values to be stored in C(X/Y)WDTH. 

Subroutines XWDTH and YWDTH 

These routines are used to set in COMMON the maximum number 
of characters allowable for the tic mark labels on the X axis. 

Calling Sequence: 

CALL XWDTH (I VALUE) 
CALL YWDTH (I VALUE) 

Parameters Entered: 

I VALUE is the maximum number of characters 
allowable for the tic mark labels. 



3-58 @ 401 0A02 USER 



D I MENS I ON KDAT A< 5 > .. YD AT A< 7 > 
DATA ><DATA--2 ... 6 ... 12 . .. 1363 . 



DATA YDATA/6 . .. 328 . 
CALL INITTUSe::' 
CALL BIN ITT 
C * MAXIMUM LENGTH OF XL ABELS 
CALL XWDTH<:3> 
CALL CHECK< XDATA .. YDAT A > 
CALL DSPLAY<XDATA.YDATA 
CALL TINPUT(:i> 
CALL FINITT<0..700> 
STOP 
END 



632 . .. 421 . .. 780 . .. 632 . .. 472 



WILL BE 



800 



700 



600 




500 



400 



Label Length Variation 
Figure 3.21 



4010A02 USER 



3-59 



3.2.16 Remote Exponent Value - CXEPON. CYEPON 

These full word real variables contain the value of the remote 

exponent to be used in labels on the respective X or Y axis. 
These values are set internally by subroutine OPTIM (there are 
no user routines available to set these values). 



3.2.17 Label Frequency - CXSTEP, CYSTEP 

These full word real variables designate the frequency of labels 
on major tic marks on the respective X or Y axis. 

These variables are initialized to 1 which designates a label 
at every major tic mark. (A value of 2 would produce labels 
at every other tic mark and a value of 3 would produce tic 
marks at every third tic mark, etc.) 

These values may not be set by the user. Subroutine SPREAD 
takes into consideration the size of the labels and the space 
available and determines the CXSTEP and CYSTEP values. 

Note: The first tic mark is always labeled; thereafter labels 
appear only at the specific intervals. 



3-60 @ 401 0A02 USER 



3.2. 18 Staggered Labels - CXSTAG, CYSTAG 

These full word real variables specify whether or not labels 
are to be staggered. These values are never user set, but 
are specificied by subroutine SPREAD which checks the size of 
the labels and the space available to determine if label stagger- 
ing is necessary. The Y axis labels are never staggered. 

CXSTAG and CYSTAG are initialized to 1 which specifies non- 
staggered labels. A value of 2 specifies staggered labels in 
two levels as shown below. Also, see Figure A. 7 



4010A02 USER 



3-61 



3.2.19 Remote Exponent Typ^ - CXFTYP, ryFTVp 

These full word real variables specify the type of remote 
exponent label to be used on the appropriate axis. The remote 
exponent will appear at the center of the X axis set out 
slightly farther than the individual tic mark labels, or 
centered above the Y axis. The various types of exponents 
available and their code values are described in the following 
table: 



VALUE RESULTING TYPE 

1 1J3 " 

2 M, MM's, etc. (1 M per 
thousand) 

3 Printed words, t-e. HUNDREDS 

4 Ij9...j9 (1 plus appropriate number of 0's) 

The default value is 1 . 



If the label type is logarithmic, this variable specifies the 
form of the major tic mark labels. No remote exponents are 
formed for logarithmic axes. 

Subroutines XETYP, YETYP 

These routines are called to set the code value of the form of 
remote exponent label to be used on the appropriate axis. 

Calling Sequence: 

CALL XETYP (I VALUE) 
CALL YETYP (I VALUE) 

Parameters Entered: 

I VALUE is the integer code value which specifies 
the form of remote exponenet to be used. 
See the table above. 



3-62 



4010A02 USER 



c * 



D I MENS I ON X*:^RR A Y<: 1 3 > .. Y APR A Y< 1 3 ::■ 

DAT^ XARRA Y-l 2. .. 100900. ,200000 ,3610000 ,480000 ,500000 , 

&6000e0 . , 700000 . , 800000 . , 900000 . , 1000000 . 1 100000 > 1200000 . / 

DATA YARRAY- 12 > 10000000 . , 20008000 . , 38000000 . , 35900009 . . 50000008 

&60000000 . , 10000000 . , 20000000 . , 44400000 . , 22200000 . . 13000000 . > 
^20000000 . .' 

CALL INITK30> 
CALL BIN ITT 
CALL SLIMY(:2dl0..600> 
SET THE REMOTE LABEL EXPONENT TYPE 
CALL XETYP<3> 
CALL YETYP(:2> 
CALL CHECKX XARRAY . Y ARRAY .) 
CALL DSPLA Y< XARRAY . YARR AY > 
CALL TINPUT<I> 
CALL FINITTC0,700> 
STOP 
END 



MM • S 



60 



40 



:0 

















A 














A 


V 




/ 










\y 




1 


1 


1 


1 


1 


1 



0.0 







4 



0.6 

MILLIONS 



0.8 



1.0 



1.2 



Remote Exponent Type 
Figure 3.22 



4010A02 USER 



3-63 



3.2.20 Major Tic Mark Starting and Ending Locations - 

CXBEG, CXEND, CYBEG, CYEND 

These full word real variables indicate the beginning ( CXBEG 
and CCYBEG) and the ending (CXEND and CYEND) locations for 
the major tic marks. The starting location for the X axis 
for example, indicates the height on the screen at which the 
X axis major tic marks will begin. 

The initial value of these variables is j3. There are no user 
called routines to set these variables; they are set internally. 



3.2.21 Calculated Data Minimums and Maximums 

CXAMIN, CXAMAX, CYAMIN, CYAMAX 

These full word real variables contain the calulated or adjusted 
data minimums and maximums from which tic mark values will 
be determined. These values are determined by subroutine 
OPTIM. (See Section 4.1.10.) 

There are no user called routines to set these variables; 
they are set internally only. 



3.2.22 Calculated Data Minimums and Maximums 

CXAMIN, CXAMAX, CYAMIN, CYAMAX 

These full word real variables contain the calulated or adjusted 
data minimums and maximums from which tic mark values will 
be determined. These values are determined by subroutine 
OPTIM. (See Section 4.1.10) 

There are no user called routines to set these variables; 
they are set internally only. 



3-64 @ 401 0A02 USER 



SECTION 4 
ADVANCED SYSTEM USAGE 

4. Advanced System Usage 

For the programmer who wishes to create more advanced graphs or to set up 
a program to create regularly updated graphs, many of the routines in this 
section may prove useful. 

4.1 Special Purpose Routines 

Additional routines are provided which are used internally but 
may be called by the user for special purposes; others are simply 
provided for the convenience of the user. These include subroutines 
to save and restore a COMMON Table, and routines which create portions 
of a graph - the symbols, labels, grid, etc. 

4.1.0 Determining the release or level of Software - AG2LEV 

This subroutine returns the release or level number and last 
modification date of the software. 

Call ing Sequence 

CALL AG2LEV (LEVEL) 
Parameters Entered: 

NONE 

Parameters Returned 

LEVEL A coded 6 digit integer containing the 
f o I I ow i ng i nf ormat i on : 

First 2 digits: year of last modification 

Next 3 digits: Julian day of last modification 

Last 1 digit: release number, 1 



Description: 

AG2LEV allows the user to obtain the release or level of his 
software so that he may determine exactly which features are 
present. The value returned should be updated in the source 
code when the package is updated. 



401 A02 USE R REV A, MAR 1 980 



4-1 



4.1.1 Setting Data Limits - MNMX 

This subroutine determines the minimum and maximum values of 
a data array. 

Calling Sequence: 

CALL MNMX (ARRAY ,AMIN,AMAX) 

Parameters Entered: 

ARRAY is the data array for which the minimum and 
maximum are to be found. 

Parameters Returned: 

AMIN is the minimum array value. 

AMAX is the maximum array value. 

Description: 

MNMX is used internally to determine data limits, and may 
be useful to the user in setting the minimum and maximum 
values for multiple overlapping curves. It is first necessary 
to set AMIN to an extremely large value and AMAX to an 
extreme negative value. Then, MNMX must be called once for 
each data array. Each time, the AMIN is set to be the 
smaller of the new and the old values, and AMAX to be the 
larger of the new and the old values. After MNMX has 
checked each data curve, DLIMX or DLIMY must be called with 
the new AMIN, AMAX values to set the limits in COMMON. 

Note: If a data value is set at CINFIN, it will be disregarded, 
That is, if a user wishes to plot data, for which some values 
are missing, he can set the missing values at "infinity", 
and those points will be skipped. 



4-2 @ 401 0A02 USER 



OiriENSION KJ^^RRAYc: 1 1 >.. YARRAVC 1 1 >. ZhRRAW. 1 1 > 

- 1 00 . .. -50 ... ... 60 ... 90 .. 1 00 .. 1 99 . . 400 . > iJBOe . /' 
76.4.31.4.45.4.5.4.3,3.1.2.9/2.1.1.8/ 
1. 5. 81. .5. 8. 4. 75. 4. 6. 4. 3. 5. 5.. 5. 9.6.2/ 



-200 

1.2.2.i 

7.44.6 



DATA XARRAY 10. 
DATA YARRAY'10. 
DATA ZARRAY.'10. 
CALL INITT< 120 > 
AMIN=1000. 
AMAX=-100000. 
BMIH=10000. 
BMAX=- 10000. 
CALL BINITT 
CALL XNEATC0) 
CALL YNEAT<0) 
C % FIND MINIMUM AND MAXIMUM DATA UALUES 
CALL MNMX< X ARRAY . AM I N . AMAX > 
CALL MNMX<YARRAY.BMIN.BMAX> 
CALL MNMX< ZARRA Y . BM I N . BMAX > 
CALL DLIMX<AMIN.AMAX> 
CALL DLIMYCBMIN.BMAX!) 
CALL CHECK< XARR AY . YARR A Y > 
CALL DSPLA YC XARRAY . YARRA Y > 
CALL CPLOTC XARRAY . ZARRA Y > 
CALL TINPUT<I) 
CALL FINITT< 0.700) 
END 




1 20 



1000 



Use of 



with a Multiple Curve 
Figure 4.1 



4010A02 USER 



4-3 



4.1.2 COMMON Table Saving Subroutine - SAVCOM 

This routine saves the COMMON table as it currently exists. 

Calling Sequence: 

CALL SAVCOM (ARRAY) 

Parameters Entered; 

ARRAY is the name assigned to the array of values 

from COMMON. This array should be dimensioned 
to 80. 
Description: 

SAVCOM allows the COMMON table to be saved, so that addi- 
tional curves may be plotted using the same graph from 
without calling CHECK each time. 

See Figure 4.2. 



4.1.3 COMMON Restoring Subroutine - RESCOM 

This subroutine restores COMMON values which have previously 
been saved. 

Calling Sequence: 

CALL RESCOM (ARRAY) 

Parameters Entered: 

ARRAY is the array of COMMON values previously 

saved with SAVCOM. This array should be dimen- 
sioned to 80. 
Description: 

RESCOM restores COMMON to the values saved with SAVCOM. 
This eliminates the steps involved in checking the table 
each time a new graph is to be displayed. 

See Figure 4.2 . 



4-4 



4010A02 USER 



C « THIS ROUTINE ILLUSTRATES THE USE OF SAUCOH AND RESCOM 

DIMENSION EARRAY(7),UIARRAY(7),AARRAY(7),TARRAV(5).STAT(80).ST(8e) 

DATA EARRAV/6. . 28000 .. 24000 . ,27000. ,29000. .32000. ,34000 V 

DATA UARRAV/6. ,211000. , 114000. , 306000 ., 3S40OO ., 291000 ., 325000 . / 

DATA AARRAV/6 . , 55000 . , 67000 . , 1 12000 . , 90000 , 81000 . , 87000 . / 

DATA TARRAV/-2 . ,6.1., 1967 . , 1 . / 

CALL INITTOO) 

CALL BINITT 

CALL SLinX(200,5OO) 

CALL SLinV(2OO,5O0) 

CALL SAUCOncST) 

CALL SVnBL(69) 

CALL CHECK(TARRAV,EARRAV) 

CALL DSPLAV<TARRAV,E ARRAY) 

CALL DINITY 

CALL XFRM(0) 

CALL YFRn(2) 

CALL SYnBL(65) 

CALL YLOCRTCO) 

CALL CHECK (TARRAY,AARRAY) 

CALL XLAB(0) 

CALL SAUCOn(STAT) 

CALL DSPLAY(TARRAY,AARRAY) 

CALL TINPUT(IUY) 

CALL RESCOn(ST) 

CALL SYMBL(87) 

CALL CHECK (TARRAY,UARRAY) 

CALL DSPLAY(TARRAY,UARRAY) 

CALL RESCOM (STAT) 

CALL DSPLAY(TARRAY,AARRAY) 

CALL TINPUTCIUY) 

CALL FINITT(0,700) 

END 



35000 



30000 




25000 



20000 



0.75 



50 



1968 1970 1972 
1967-1972 



XIO* 



Save and Restore COMMON 
Figure 4.2 







K 


\^^ 


p 


H 


p 




C '"■ 

1- 


V 





XI O'' 
1.25 



1 00 



75 



50 



1968 1970 1972 
1967-1972 



4010A02 USER 



4-5 



4.1.4 Symbol Drawing Subroutine - BSYMS 

This routine draws symbols for data points when required. 

Calling Sequence: 

CALL BSYMS (X,Y,ISYM) 

Parameters Entered: 

X, Y are the virtual coordinates for the data 
point at which a symbol is to be drawn. 

ISYM is the value of the symbol type. See the 
chart on page 3-9. 

Description: 

BSYMS obtains the data point location and the symbol type 
and draws the symbol. It is used internally by CPLOT to 
draw the data point symbols, or may be called by the user 
if he wishes to draw symbols elsewhere. 



NOTE: BSYMS draws the symbol at the current beam position; that 
is, BSYMS does not move to X, Y before drawing the symbol. 
X, Y is used to determine if the symbol location is inside 
the virtual window; if not, the symbol will not be drawn. 
This routine is intended for internal system use. The 
user is therefore encouraged to use subroutine SYMOUT 
for placing symbols and legends. 



4-6 



4010A02 USER 



c t 



DiriENSION ISTRIN(19) 
DIMENSION XARRAV(4).VARRrtV(7) 
DATA XARRAV/-1 . 6 . . 23 . . 2 5/ 

DATA VARRAV/6 -211 .114 , 306 . . 354 . . 291 . , 325 . / 
DATA ISTRIN/61>32.68,65,84.65.32,80,79.73,78,84, 
^.32 , 83 . 89 . 77 , 66 , 79 . 76/ 
CALL INITT(120) 

BINITT 

SXZES(2> 

SYHBLCe) 

CHECK ( XARRAV , VARRAV ) 

DSPLAV^XARRAV , VARRAV ) 

nOUEA(27.5,120 ) 

SAPIPLE OF THE SYMBOL UITHIN THE GRAPIC AREA 

BSVnS( 27 5.120. ,6) 

MOUABS(450.160) 

HLABEL(19.ISTRIN) 

TINPUT(I) 

FINITTC0,700) 



CALL 
CALL 
CALL 
CALL 
CALL 
CALL 
PLACE A 
CALL 
CALL 
CALL 
CALL 
CALL 
STOP 
END 



400 




Using BSYMS 
Figure 4.3 



4010A02 USER 



4-7 



Symbol Output Subroutine - SYMOUT 

This routine produces standard symbols at the current beam location. The 
beam is left at that location upon return. No clipping or windowing is 
done by this routine. The characters (exclusive of ASCII characters) may 
be scaled by a multiplicative factor; that is , a factor of 2 will pro- 
duce a symbol two times the normal size. 

Calling Sequence: 

CALL SYMOUT(ISYM, FACTOR) 

Parameters Entered: 

ISYM is the value of the symbol type. See the chart on 
page 3-9. 

FACTOR is the scaling factor of the symbol type (exclusive 
of hardware generated ASCII characters). 



4-8 @ 4010A02 USER 



Bar Drawing Subroutine - BAR 

This routine draws the bars for a bar chart. 

Calling Sequence: 

CALL BAR {X,Y,LINE) 

Parameters Entered: 

X,Y are the screen coordinates to which the bar is to be 
drawn . 

LINE is the direction in which the line is to be drawn. 
draws a bar similar to the last one drawn. 

2 draws vertical bars and accesses COMMON for shading. 

3 draws horizontal bars and accesses COMMON for shading, 

Description: 

BAR obtains all the information necessary for drawing and shading 
the bars for a bar chart. To do this it obtains CSIZEL for the 
width of the bar and CSIZES for the distances between shading lines. 
It then draws the bar and calls FILBOX to shade it. 



401 0A02 USER @ 4-9 



4.1.5 Bar Chart Shading Subroutine - FILBOX 

This routine shades in the bars of a bar chart. 
Calling Sequence: 

CALL FILBOX(MINX,MINY,MAXX,MAXY,ISYMB,LSPACE) 
Parameters Entered: 



MINX 
MINY 
MAXX 
MAXY 
ISYMB 

LSPACE 



is the X axis screen minimum of the bar. 

is the Y axis screen minimum of the bar. 

is the X axis screen maximum of the bar. 

is the Y axis screen maximum of the bar. 

is an integer symbol code from through 15. 
It indicates the type of line shading to 
fill the box. (See Section 2.8) 

is the distance in raster units between the 
lines shading the bar. 



Description: 



FILBOX fills each bar of the chart with the specified grid 
work for shading. 



4-10 



4010A02 USER 



C ♦ THIS ROUTINE TESTS FILBOX ROUTINE 

DIMENSION IARRAY<15> 

CALL INITT<120> 

CALL BINITT 

ISYMB^e 

DO 100 J=l,2 

MINY-100+300*< J~l > 

MAXY=MINY+250 

DO 100 1=1,8 

MINX»50+100*<I-1> 

MAXX=MINX'«-80 
C * FILL THE BOXES WITH APPROPRIATE DESIGN 

CALL FILBOX< MINX/ MINY.. MAXX. MAXY, ISYrB, 20 > 

SYriB«FLOAT<:iSYMB> 

CALL FFORM< SYMB, 3, 0, 1 ARRAY, 32 > 

CALL MOUABS<MINX+30,MINY-30> 

CALL HLABEL< 15, 1 ARRAY > 

ISYMB=ISYriB+l 
100 CONTINUE 

CALL TINPUTCKEY) 

STOP 

END 




I 





11 













































































































14 














12 3 4 5 6 7 

FILBOX 
Figure 4.4 



4010A02 USER 



4-11 



4.1.6 Tic Mark Labeling Subroutine - LABEL 

This routine displays the tic mark labels on the graph. 

Calling Sequence: 

CALL LABEL (NBASE) 

Parameters Entered: 

NBASE is the axis pointer, i.e. the location in 

COMMON of the first item referring to the X 
or Y axis, whichever is here indicated. 
(Function IBASEX or IBASEY provides this location 
See Sections 4.4.5 and 4.4.6.) 

Description: 

LABEL obtains the appropriate axis values from COMMON for 
the number of tic marks, tic mark length and form, data 
minimum and maximum, screen minimum and maximum, type and 
width of labels, and remote exponent (if any), frequency 
of labels and whether staggered. It then calculates the 
labels, converts them to alphanumerics with NUMSET, 
justifies and displays them with NOTATE. If remote 
labels are used, LABEL calls REMLAB. 



4-12 @ 



4010A02 USER 



4.1.7 Grid Drawing Subroutine - GRID 

This routine draws the axis lines, tic marks, and grid lines. 
Calling Sequence: 

CALL GRID 
Parameters Entered: 

None 

Description: 

GRID obtains the screen minimums and maximums, the axis 
location and tic mark form and number. It then draws the 
axis lines and the tic mark and grid lines. 



4010A02 USER 



4-13 



4.1.8 Window Setting Subroutine - SETWIN 

This subroutine transfers the window location from virtual to 
screen coordinates. 

Calling Sequence: 

CALL SETWIN 
Parameters Entered: 

None 

Description: 

SETWIN is a transformational routine which transfers the 
window size and location from virtual space to screen 
space. DSPLAY calls SETWIN before drawing the graph. 



4-14 



4010A02 USER 



4.1.9 Label Width Subroutine - WIDTH 

This subroutine calculates and stores in COMMON the width of 
the longest label on the given axis. 

Calling Sequence: 

CALL WIDTH (NBASE) 

Parameter Entered: 

NBASE is the axis pointer, or the location in COMMON 
of the first item referring to the X or Y 
axis, whichever is here indicated. (IBASEX 
or IBASEY provides this location.) 

Description: 

This routine checks the data minimum and maximum for the 
given axis, the position of the least significant digit, 
and the type of label; it then calculates the number of 
characters necessary for the longest label on the axis. 
The number of characters computed is then stored in COMMON 
variable CXWDTH or CYWDTH. 



4010A02 USER 



4-15 



4.1.10 Optimum Tic Mark Subroutine - OPTIM 

Using the data from COMMON, this routine produces results necessary 
for appropriately spaced and labeled tic marks. 

Calling Sequence: 

CALL OPTIM (NBASE) 

Parameters Entered: 

NBASE is the axis pointer to the location of the first 
item in COMMON which refers to the X or to the 
Y axis. (Functions IBASEX and IBASEY provide 
this location.) 

Description: 

If any necessary COMMON values have not been set, appropriate 
values will be obtained through this routine. 

If the data range in COMMON is j9, data will be scanned to 
find the minimum and maximum, and thus the range. Zero 
suppression (suppression of zero as a tic mark value unless 
the data approaches zero) is checked only if data scanning 
is necessary. 

If the number of tics is not specified, the number is chosen 
based on the length of the axis and the density factor. 
The distance between the resulting tic marks will be no 
less than 50 raster units or more than 150 raster units. 

Note: The density factor is a value in COMMON designating 
the desired density of tic marks. Values 19 through 5, and 
6 through 10 create tic marks ranging from sparse (jO or 6) 
to dense (5 or lj9) with values through 5 omitting minor 
tic marks. 

If the number of tics has been user specified, density factor 
is ignored. 

The interval between tic mark values will be calculated. 
If neat tic marks have been requested, the label values 
will be rounded to neat intervals. Data minimum and 
maximum will be adjusted to coincide with label values. 
If the number of tics has not been specified, it may be 
altered at this time to fit the plot better; if the number 
of tic marks was user specified, tic mark labels and data 
limits will be adjusted to fit. 



4-16 @ 401 0A02 USER 



The position of the least significant digit in the tic mark 
label is calculated and this information utilized by WIDTH 
to select the number of digits to be displayed as part 
of the label. A remote exponent will be used, displayed 
as a general axis label, if the complete label will not fit, 

If the number of minor tics has not been selected and the 
density factor is six or greater, the number of minor tics 
will be selected based on the tic mark label interval. 

Note: The list of neat values used to compute neat major 
and minor tic mark values may be reprogrammed by the user. 



401 0A02 USER @ 4-17 



4.2 Number Setting Routines 

A group of routines called by NUMSET change floating point numbers 
into character strings which can be displayed as tic mark labels. 
Their interaction is shown in Figure 4.5. 







Figure 4.5 
Number Handling Routines Utilized by NUMSET 



* These routines may be used outside of Advanced Graphing II as they do 
not refer to the Global Table. 



4-18 



4010A02 USER 



4.2.1 Subroutine NUMSET 

This subroutine changes floating point numbers into character 
strings which can later be displayed as tic mark labels. 

Calling Sequence: 

CALL NUMSET (FNUMBER,IWIDTH,NBASE,IARRAY,rFILL) 
Parameters Entered: 

FNUMBER is the floating point number to be converted. 

IWIDTH is the length of the resulting string, including 
fill characters. 

NBASE is the axis pointer, i.e., the location in 
COMMON of the first item referring to the X 
or Y axis, whichever is here indicated. (IBASEX 
or IBASEY provides this location.) 

I FILL is the character to be used as filler in any 

extra spaces to the left of the array (all numbers 
are right justified). 

Parameters Returned: 

lARRAY is the string of characters returned in ASCII 
decimal equivalents. 

NUMSET also uses the values from COMMON designating the number 
of decimal places required, the type of labels, and the exponent 
type if a logarithmic axis is involved. 

NUMSET utilizes a group of other subroutines in determining the 
final form for the tic mark labels. The three routines which 
it calls directly are: IFORM, FFORM, and EXPOUT, descriptions 
of which are included in detail in following pages. 

If the axis being considered is not logarithmic, NUMSET will 
call either 

1. IFORM (if number is integer) which will result in integers 
without decimal points, or 

2. FFORM (if real number) which results in ASCII decimal equiv- 
alents of a number with decimal points. 

If the axis is logarithmic, NUMSET calls EXPOUT, resulting in 
exponential labels. ^ 



4010A02 USER @ 4-19 



4.2.2 Subroutine EFORM 

This routine converts a real value into an exponential character 
string. 

Calling Sequence: 

CALL EFORM (FNUMBER,IWIDTH,IDECIMAL,IARRAY,IFILL) 
Parameters Entered: 

FNUMBER is the floating point number to be converted. 

IWIDTH is the length of the resulting string, including 

fill characters. 

I DECIMAL is the number of digits to follow the decimal 

point. 

I FILL is the character to be used as filler in any 

extra spaces to the left of the array (all 
numbers are right justified). 
Normally a Fill character of blank is used 
(ASCII [32]). 

Parameters Returned: 



I ARRAY 



is the string to characters returned in ASCII 
decimal equivalents. 



Description: 



EFORM utilizes subroutine ESPLIT to divide the real number 
into multiplier and exponent, based on the width designated 
and the number of digits following the decimal point. 
The multiplier is then converted into a character string and 
I FORM converts the exponent into a character string. 



4-20 



4010A02 USER 



4.2.3 Subroutine FFORM 

Thts subroutine converts a real value into a character string 
which provides either a floating point number or a number with 
a decimal point, depending on which form will best fit the given 
width. 

Calling Sequence: 

CALL FFORM (FNUMBER,IWIDTH,IDECIMAL,IARRAY,IFILL) 

Parameters Entered: 

FNUMBER is the floating point number to be converted. 

IWIDTH is the length of the resulting string, including 
fill characters. 

IDEGIMAL is the number of digits to follow the decimal 
point. 

I FILL is the character to be used as filler in any 

extra spaces to the left of the array (all 

numbers are right justified as output in lARRAY), 
Normally IFILL is a Blank (32). 

Parameters Returned: 

lARRAY is the string of characters returned in ASCII- 
decimal equivalents. 

Description: 

If the number will fit the given width, it is converted 
into a character string with a decimal. If it will not 
fit the given width, control is transferred to EFORM. 

A minus sign (-) precedes the value if it is negative. 

Example: See Section 2.13.4. 



4010A02 USER @ 4-21 



4.2.4 Subroutine I FORM 

This routine converts a floating point number to a character - 
string without a decimal point. 

Calling Sequence: 

CALL IFORM (FNUMBER,IWIDTH,IARRAY,IFILL) 
Parameters Entered: 

FNUMBER is the floating point number to be converted. 

IWIDTH is the length of the resulting string, including 

fill characters. 

I FILL is the character to be used as filler in any 

extra spaces to the left of the array (all 
numbers are right justified at this time). 
Normally a fILL character of blank is used 



iNormai ly 
(ASCII [ 



32]). 



Parameters Returned: 



lARRAY is the string of characters 

returned in ASCII decimal equivalents. 



Description: 



If the integer is negative, a sign is placed in the position 
immediately preceding the number. 



4-22 @ 4010A02 USER 



4.2.5 Subroutine EXPQUT 

This routine constructs remote scale factors in various set 
forms or the labels for logarithmic tic marks. 

Calling Sequence: 

CALL EXPOUT (NBASE,IEXP,IARRAY, LENGTH, IFILL) 

Parameters Entered; 



NBASE 



lEXP 



LENGTH 
IFILL 



is the axis key or the location in COMMON of 
the first item referring to the X or Y axis, 
whichever is here indicated. (IBASEX or IBASEY 
provides this location.) 

is the integer value that defines to what power 
10 is raised. This is necessary for either 
scale factors or logarithmic tic marks. (In 
10^, 6 is the integer exponent.) 

is the integer length of the array. 

defines the character used to fill in the blanks 
(all labels are right justified). ASCII value 
32 representing a blank is usually used. 



Parameters Returned: 



lARRAY 



Description: 



is the array in which the label 
in ASCII decimal equivalents. 



is returned 



EXPOUT takes the integer supplied to it and translates it 
into a character string which can be justified. From COMMON 
it obtains the type of exponent (CXETYP or CYETYP) and the 
type of labels (CXLAB or CYLAB). The results are one 
character per word in a right justified array. 

Logarithmic graphs never have a remote exponent. 



4010A02 USER 



4-23 



4.3 Universal Business Graphing Calendar 

TKe Irregularities of the modern day calendar make the computer plotting 
of calendar data extremely difficult. In addition to the calendar 
irregularities are the irregularities of accounting periods as devised 
by various businesses. 

To allow for these variations, the UBGC (Universal Business Graphing 

Calendar) has been developed to consider January 1, 1901, as day 1, 

and to number each day thereafter sequentially from day 1. By conversion 

of calendar dates to UBGC days, we can allow for such irregularities 

as daily data plotted against monthly labels, or any number of accounting 

periods per year. 

The following routines provide for conversions from calendar dates into 
UBGC days or vice versa, and from year-day format to year-month-day 
or vice versa. 



4-24 



4010A02 USER 



4.3.1 Conversion to UBGC Value - IUB6C 

This subroutine is used for converting the year and day into 
a Universal Business Graphing Calendar value. The UBGC date 
is the number of days since December 31, 1900, e.g., UBGC of 
January 1 , 1901 , is 1. 

Calling Sequence: 

CALL lUBGC (IYEAR,IDAYS,IUBGCX) 

Parameters Entered: 

I YEAR A four digit integer value year (e.g. 1972) 
representing the year to be converted. 

IDAYS A three digit integer value representing the 
day of the year. 

Parameters Returned: 

lUBGCX An integer value returned by the subroutine 
representing the Universal Business Graphing 
Calendar value. 



4010A02 USER 



4-25 



4.3.2 Conversion from UBGC Value - OUBGC 

The purpose of the subroutine OUBGC is to convert from the 
Universal Business Graphing Calendar date to the appropriate 
year and day. 

Calling Sequence: 

CALL OUBGC (IYEAR,IDAYS,IUBGCX) 

Parameters Entered; 



lUBGCX 

Parameters Returned: 
lYEAR 

I DAYS 



represents the integer Universal Business 
Graphing Calendar value. 



is an integer variable, containing the 
year in which the entered date (lUBGCX) 
lies. 

is an integer variable representing the 
day of the year. 



4-26 



4010A02 USER 



4.3.3 Year Day Conversion - YDYMD 

This routine converts dates from year, day format (YYYYDDD) 

to year, month, day format (YYYYMMDD), or from Julian to Gregorian. 

Calling Sequence: 

CALL YDYMD(IYEAR,IDAYS,IYEAR2,M0NTH,IDAY) 
Parameters Entered: 

I YEAR is a four digit year. 

I DAYS is a three digit day of the year value. 
Parameters Returned: 

lYEARZ is the year. 

MONTH is the month of the year 

IDAY is the day of the month 

Description: 

If IDAYS is outside the domain of 1 to 366, IYEAR2 will 
differ from lYEAR. 



4010A02 USER @ 4-27 



4.3.4 Year Month Day Conversion - YMDYD 

This routine converts dates from tfie year, month, day format 
(YYYYMMDD) to a year, day format (YYYYDDD) , a Gregorian to Julian 
conversion. 

Calling Sequence: 

CALL YMDYD (IYEAR,IDAYS,IYR,MONTH,IDAY) 
Parameters Entered: 

lYR is a four digit year to be converted. 

MONTH is the month passed to the routine. 

I DAY is the day of the month. 
Parameters Returned: 

lYEAR is the year 

IDAYS is the day of the year 

Description: 

If MONTH is outside the domain of 1 to 12, lYR will 
differ from I YEAR. 



4-28 REV A, AUG 1979 



4010A02 USER 



4.4 General COMMON Setting and Access Routines 

Some users may prefer to use one single subroutine to set any variable 
in COMMON. Subroutine COMSET, used with functions IBASEC, IBASEX, 
and IBASEY to specify the item being set, provides this option. 

The IBASE functions may be thought of as COMMON section pointers, as 
illustrated in the diagram below. The actual variables found in each 
section are shown with the function descriptions on pages 

The table of variables and their locations follows. 



AG- I I COMMON 



-IBASEC(0) 



■IBASEX(ja) 



.IBASEY(0) 



4010A02 USER 



4-29 



Location 



TABLE II 
Advanced Graphing II Common Variables 



Variable 



Description 



Initial 
Value 



SECTION I. DATA CURVE VARIABLES 
IBASE Value 






CLINE 


Type of line used in plots 


0. 


1 


CSYMBL 


Symbol used for point plots 


0. 


2 


CSTEPS 


Increment between symbols 


1. 


3 


CINFIN 


Infinity 


1.E30 


4 


CNPTS 


Number of points for non-standard 
array 


0. 


5 


CSTEPL 


Increment between points in lines 


1. 


6 


CNUMBR 


Actual number of points in this plot 


JO. 


7 


CSIZES 


Symbol size - Shading density on bars 


1. 


8 


CSIZEL 


Line size - Bar width 


1. 



SECTIONS II AND III. AXIS VARIABLES 
IBASEX/IBASEY Value 



JO 



CXNEAT 
CYNEAT 



Neat tic mark flag 



l.(ON) 



CXZERO 

CYZERO ^^^^ suppression flag 



1,(0N) 



CXLOC 
CYLOC 



Location of axis 



iO. 



CYLAB ^^P^ °^ ^^^^^^ 



CXDEN 

CYDEN Density of tic marks 



''sections II and III (X Axis Variables and Y Axis Variables) have been 
combined in this chart for ease of reference. 



4-30 



4010A02 USER 



TABLE II (continued) 
Advanced Graphing II Common Variables 



Location Variable 



Description 



Initial 
Value 



SECTIONS II AND III. AXIS VARIABLES 



CXTICS 

CYTICS Number of major tic mark intervals 



CXLEN 
CYLEN 



Length of major tic marks 



Vertical height of 
current character 
size 



CXFRM 
CYFRM 



Form of major tic marks 



5. 



CXMTCS 
CYMTCS 



Number of minor tic mark intervals 



CXMFRM 
CYMFRM 



Form of minor tic marks 



10 



CXDEC 



CYDEC Number of decimal places in labels 0, 



11 



CXDMIN 
CYDMIN 

CXunAX 

CYDMAX 



Data Minimum 
Data Maximum 



13 
14 



CXSMIN 
CYSMIN 

CXSMAX 
CYSMAX 



Screen minimum 
Screen maximum 



150.125 
(1024 addressing) 

900,700 
(1024 addressing) 



15 



CYTYPE "^^P^ °^ ^^^^ 



1. 



^YSL IG Least significant digit 



17 



CXWDTH 
CYWDTH 



Maximum label width 



18 



CYEPON Exponent 



4010A02 USER 



(continued) 

REV A, DEC 1 979 



4-31 



TABLE II (continued) 
Advanced Graphing II Common Variables 



Location Variable 



Description 



Initial 
Value 



SECTION II AND III. AXIS VARIABLES 



19 



CXSTEP 

CYSTEP Number of label steps 



20 



CYSTAG "^^P^ °^ ^^^^^ ^^^"^ 



21 



CYETYP ^^PO"ent Type 



22 



CXBEG 
CYBE6 



Start location for tic marks 



23 



CXEND 



CYEND Ending location for tic marks 



24 



CYMBEG Starting location for tic marks 



25 



CYMEND Ending location for minor tic marks 



26 



CXAMIN 
CYAMIN 



Calculated data Minimum 



27 



CXAMAX 
CYAMAX 



Calculated data Maximum 



The location values are useful when using COMSET and COMGET 
which may refer to any of these variables. 



4-32 



4010A02 USER 



4.4.1 COMMON Section Pointers 

All access to the global COMMON table is via a number of intermediate 
functions and subroutines. This assures flexibility in future versions 
of the package. Any one accessing COMMON by any method other than the 
one described in this section is running a risk of being incompatible 
with future releases. 



Note: Most users will never need to access COMMON and will 
NOT need to read this section. 



Function IBASEC (page 169) is a pointer to the first variable 
in the data curve section of COMMON. The function parameters 
are values from to 5, designating the distance (the number of 
full words) the pointer should advance to locate the desired 
variable. For example, IBASEC (^2) locates the variable CSTPL. 
IBASEX and IBASEY are pointers to the beginning variables in 
the X axis section and the Y axis section respectively. Since 
the same kinds of variables are necessary for both the X and the 
Y axes, the names and descriptions of these variables are combined 
into a single reference table, (see Table II on page 4-30.) 

Internally, the same routines are often used to compute inform- 
ation for either the X or the Y axis. (This is true of all 
the axis labeling routines such as OPTIM, TSET and'WlDTH.) 
Therefore, in these routines, the variable NBASE is used as 
the axis pointer designating the value in COMMON to be used 
for the computation. A higher level routine (such as CHECK) 
can then set NBASE to be either IBASEX or IBASEY, depending on 
which axis is being computed. 

For example, NBASE+1 may refer to either CXZERO (X axis zero 
suppression variable) or CYZERO (Y axis zero suppression variable), 
depending on which function (IBASEX or IBASEY) is substituted 
for NBASE. 

A set of five subroutines and functions are used to access 
COMMON in this manner. 



4010A02 USER 



4-33 



4.4.2 General COMMON Setting Routine - COMSET 

COMSET is a user called routine which sets the value of any 
item in COMMON. Its two arguments designate the location of 
the item in COMMON to be changed and the new value to be 
assigned. 

Calling Sequence: 

CALL COMSET (ITEM, VALUE) 

Parameters Entered: 

ITEM is the number of word in COMMON 

to be set or changed. 

VALUE is the real value to be stored there. 
See Example 3 on page 4-40 



4-34 @ 401 0A02 USER 



D I MENS I OM I ff:my(. 1 G ) . UALIJE( 3 > 

CALL INITK30::' 

CALL EINITT 
C t OBTAIN THE LOCATION OF CLINE IN COMhON 

UALLIF.( 1 >=FLCiAT( ieASEC< d > ) 
C :♦ OBTAIN THE UALUE OF CLINE 

UALIJE( 2 )=COMGET( IBASEC< e > ) 
C 1 CHANGE CLINE CONTENTS TO-2 (THE BAR CHART OPTION) 

CALL COMSET(IBASECC0>r2. > 
C :^ OBTAIN THE NEW UALUE OF CLINE 

UhLUE< 3 >=COMGET( IBASEC< ) > 
C t PRINT THE LOCATION OF CLINE.. THE OLD UAUJE AND THE NEW UALUE 
C t OF CLINE. USE AG-II NUMBER OUTPUT ROUTINES. 

DO 100 1=1. .3 

CALL FONLYC UALUE< I ).. lO.. 3. lARRAY.. 32 ) 

CALL MOUABS(0.. 750-1*50) 
100 CALL HLABEL( 10. lARRAY ) 

CALL TINPUTdUY) 

CALL FINITT(0,.700) 

END 



S 000 

1 . 000 

2 . 000 



Use of COMSET and COMGET 
Figure 4.6 



4010A02 USER @ 4-35 



4.4.3 COMMON Access Function - COMGET 

If the user wants to know the value assigned to an item in 
COMMON at any give time, the function COMGET provides it. 

Calling Sequence: 

COMGET (ITEM) 

Parameters Entered: 

ITEM is the number of the word in COMMON 

for which we want to know the value. 

In this function VALUE=COMGET(ITEM). 

The internal location of an item in COMMON is found with the 
assistance of functions IBASEC, IBASEX, and IBASEY. These 
three functions coincide with the three sections of COMMON ^s 
described earlier. 

See Examples 1 and 2 on page 4-40, and Figure 4.6 on preceding page. 

Note: It is necessary to include a WRITE statement to 
obtain a value with COMGET. 



4-36 @ 401 0A02 USER 



4 4 4 General COMMON Section Pointer ■- IBASEC 

Function IBASEC is used to find the location of any item in 
COMMON pertaining to the type of line and data point symbols 
to be used. 

Calling Sequence: 

IBASEC (IWORD) 

Parameters Entered: 

IWORD is the integer used to designate the 
item in this section of COMMON. The 
first column of Table II on page 4-30, 
provides the item designation number. 
For example, IWORD equal to 2 design- 
ates variable CSTEPS. 



401 0A02 USER @ 4-37 



4.4.5 X Axis COMMON Section Pointer - IBASEX 

IBASEX is a function used to find the location of a particular 
item in COMMON which pertains to the X axis. 

Calling Sequence: 

IBASEX (IWORD) 

Parameter Entered; 

IWORD is the integer used to designate the 
item in the X axis section of COMMON. 

The first column of Table II 
provides you with the appropriate 
IWORD value. For example, IWORD equal 
to 3 designates variable CXLAB. 

See Examples on page 4-40. 



4-38 



4010A02 USER 



4.4.6 Y Axis COMMON Section Pointer - IBASEY 

IBASEY is used in the same way as IBASEX, but designates an 
item in COMMON which pertains to the Y axis. 

Calling Sequence: 

IBASEY (IWORD) 

Parameter Entered: 



IWORD 



is the integer used to designate the 
item in the Y axis section of COMMON. 
The first column of Table II 
provides the appropriate IWORD value. 
For example, IWORD equal to 3 designates 
variables CYLAB. 



See Example 2 on page 4-40. 



4010A02 USER 



4-39 



4.4.7 Examples of Use of COMSET, COMGET, IBASEC, IBASEX, and 
IBASEY 

1. To find the value that has been assigned in COMMON 
to the X axis neat flag (CXNEAT), it is necessary to 
use the two functions COMGET and IBASEX. 

ITEM = IBASEX(JO) 
VALUE = COMGET (ITEM) 

or 
VALUE=COMGET ( IBASEX (JZ))) 
JO is the integer assigned to CXNEAT in Table II. 

2. To find the value of the Y axis data minimum (CYDMIN) 
in COMMON, functions COMGET and IBASEY are used. 

ITEM= IBASEY (11) 
VALUE=COMGET(ITEM) 

or 

VALUE=C0MGET(IBASEY(11)) 

11 is the number assigned to CYDMIN in Table II. 



3. To set the value of the X axis neat flag to jD (off), 
COMSET and IBASEX could be used in the following 
manner. 

CALL COMSET(IBASEX(ja),ja.) 

where IBASEX(ja) provides the location in COMMON of 
the X axis neat tic flag (CXNEAT) and the second jD 
is the value to be assigned to the neat flag. 



4-40 @ 401 0A02 USER 



APPENDIX A 
Sample Graphs 



A group of complex graphs were collected at the end of Section 1 to 
demonstrate the variety available with the package. The code for these 
examples is contained in the following section. 



401 0A02 USER @ A-1 



e.5 



e.e 



-0.5 



-1.0 



-1 .5 




0.40 



0.35 



0.30 



0.25 



0.20 



- 








- 




. 




- 


1 


\ 




- 


/ 


\ 






i 


I 


1 



-0.8 



-0.6 



-0.4 



-0.2 



DIMENSION XPTSC 1 5:> , YPTSC 1 Si) 

DATA XPTS/14.,-1.52,-l.21,-1.05,-.81,-.62,-.60,-.57,-.41,-.32, 
&-.09, .1,.3, .5, .7/ 

DATA YPTS/14.,-.70,-.27.-.12, .17, .28, .31^.32, .20, .18, .10,-.08, 
&-.35,-.71,-1.22/ 

CALL INITTCI20:) 
C *» THE MAIN CURVE 

CALL BINITT 

CALL SLIMXC100,400:) 

CALL SLIMYC200,600D 

CALL CHECKCXPTS,YPTS> 

CALL DSPLAY<XPTS,YPTS) 
C * DRAW A BOX AROUND THE PORTION OF THE GRAPH TO BE ENLARGED 

CALL M0VEAC-.8, .2) 

CALL DRAWAC-.2, .2) 

CALL DRAWAC-.2, .4:) 

CALL DRAWAC-.8, .4) 

CALL DRAWAC-.8, .2) 

CALL ANMODE 
C i» THE ENLARGEMENT, PRODUCED BY RESETING DATA LIMITS 

CALL BINITT 

CALL DLIMXC-.8,-.2) 

CALL DLIMYC.2, .4) 

CALL SLIMXC500,975) 

CALL SLIMYC200,700:) 

CALL CHECKCXPTS,YPTS> 

CALL DSPLAYCXPTS,YPTS> 

CALL FINITTC0,700:) 

END 

Figure A.I 

This display demonstrates the enlargement of a detail in the second graph on 
the same page. 



A-2 



4010A02 USER 



COST VOLATILITY 




DEC JUN DEC JUN DEC JUN 
1969-1973 



Figure A. 2 



The Cost Volatility graph demonstrates the use of a multiple curve with 
a user written subroutine ULINE to create a stepped data line. 



C4*«»M4*HI*MMI»»»)»»l»4»f*«»MMM»*l»»l»M»l*«*«»«»»*»»»»*l»»»»MM4»MMMMMHI»M>»»MM4*«*M»»*»*MI» 

REAL XPTSC55:>,YPTS<55),UPTSC23:>,VPTSC23> 

INTEGER ISTC22>, ISTRC 1 0). ISTRIC 1 5) , ISTRINC2 1 > 

LEN-22 

LEN6-18 

LENGT-15 

LEN6TH-21 
C *» CURVE LABEL:9 0-DAY EURODOLL 

C«» AR RATE 

DATA IST/57^ 48^ 45^ 100,97^ 121,32^69, 1 17^ 1 !4^ 1 11,100^ 1 1 1^ 108, 108, 
&97, 1 14,32, 1 14,97, 1 16, 101/ 
C »» CURVE LABEL: PRIME RATE 

DATA ISTR/80, 1 14, 105, 109, 101,32, 1 14,97, 1 16, 101/ 
C »» GRAPH TITLE: COST VOLATILITY 

DATA ISTRI/67, 79, 83, 84, 32, 86, 79, 76, 65, 84, 73, 76, 73, 84, 89/ 
C H SCALE LABEL: PERCENT INTEREST RATE 

DATA ISTRIN/80, 101,114,99, 101,110, 116,32,73,110, 116, 101,114,101 
&, 1 15, 1 16,32, 1 14,97, 1 16, 101/ 



4010A02 USER 



A-3 



C I* DEFINE LONG FORM DATA ARRAY IN UB6C DATES 

XPTSCO-64. 

CALL IUB6CC1860^1^D(PTS> 

XPTSC25-FL0ATCIXPTSJ 

DO 180 I-3^S5 
1 ee XPTSCI5-XPTSCI- l >*28 . 
C » DATA ARRAY IN PERCENT 

DATA YPTS/64.^7.8^7.l,7.e^8.4^8.4^9.3^ie.8^ie.4^ie.4^n.Un.2. 
&9.5. 18.7. 18.8^9.5^9.3.8.7^8.8.8.5.8.8^9. 1.8.8.8.4.7.9.8.5. 
W. 8. 7. 8.7. 8.6. 8.5. 3.6. 8.8. 7.7. 4.8. 8.8. 7.8. 8.7.5.9. 8.7. 4.8. 8.6. 2. 
_&6. 9.6. 7.7. 3.7. 5.7.9.8. 5.8. 8.7. 7.7. 9.8. 2.9. 8.8.2.7. 7/ 
C «» DATA ARRAY IN DAY INTERVALS 

DATA UPTS/22.. 8. .58. .78. .325. .175. .38. .58. .25.. 25. .28. .25. .65. 
&. 38.. 158.. 35.. 68. .68.. 64. .115. .38. .58. .68./ 
C «» DATA ARRAY IN PERCENT 

DATA VPTS/22.. 7. 0.7. 5.8. 5.8. 8.7. 6.7. 3.7. 8.6. 6.6. 1.5.8.5.4.5.7. 
&6. 1. 5. 8.5. 6.6. 0,7. 4.8. 0.7. 4. 7. 2. 7. 1.6. 8/ 
C * CHANGE UPTS ARRAY TO UB6C DATE VALUES 

UPTSC2:>-XPTSC2:> 

DO 200 I"3.23 
200 UPTSCi:>«UPTSCI- 1 >+UPTSCI5 

CALL INITTCI205 

CALL BINITT 

CALL XWDTHC35 

CALL SLIMY C200. 6905 

CALL XTYPEC35 

CALL xdencq:) 

CALL XLABC65 

CALL CHECK CXPTS.YPTS) 

CALL DSPLAYCXPTS.YPTS) 
C ♦» ON THE SECOND PLOT USER WRITTEN SUBROUTINE ULINE IS USED 

CALL LINEC~10 

CALL CPLOTCUPTS.VPTS? 
C •» LABEL THE GRAPH INTERACTIVELY 

CALL DCURSRCIC.IX.IY> 

CALL notatecix.iy.len.ist:> 

CALL DCURSRCIC.IX.IY> 

CALL N0TATECIX.IY.LEN6.ISTR5 

CALL DCURSRCIC.IX.IY> 

CALL notatecix.iy.lengt.istri:) 

CALL DCURSRCIC.IX.IY> 

CALL MOVABSCIX.IY) 

CALL VLABELCLENGTH.ISTRIN> 

CALL TINPUTCK^ 

CALL FINITTC0.700> 

END 
C n THIS SUBROUTINE IS CALLED TO GRAPH THE SECOND CURVE 
C «» SINCE CLINE WAS SET TO -i 

SUBROUTINE ULINECX.Y.I> 

IFCI .EG. O GO TO 100 

CALL DRAWACX.Y0LD5 

CALL DRAWACX.Y> 
100 YOLD«Y 

RETURN 

END 

CMI»l*«»M»«MMI»l»i»l»l»«»«»ll»MMWI»»l»l»MMMI»MMMMM»i»i»l»MI»l»l»l»MMMMi»l»HMI»MI*«»l»»MMMI* 



A-4 REV, FEB 1982 



4010A02 USER 



MANPOWER IN BUILDING DESIGN 



288 



158 



188 



58 • 



-R-/ 



k 



s 
s 



?— s 






fHIH 



s 



784 



785 



-r 

786 






ffll 



8 

«- 8 



it-/ H 



787 



788 



789 



718 



PERIOD 



DESIGNER 




^ 




Figure A. 3 



This graph demonstrates the use of a bar chart with user written subroutines 
ULINE and LEDG. Subroutine FILBOX draws the shading lines for the legend. 



4010A02 USER 



A-5 



C «» ROUTINE TO PLOT TIME INVESTED IN BUILDING DESIGN 
C *• SINCE PERIOD 704 

DIMENSION PERI0D<7:).DESINRC7.6:) 

DIMENSION ITITLEC28D, IHCe:), IPC73, IDESINC9:) 
C n ASCII EQUIVILENT OF 'MANPOWER IN BUILDING DESIGN' 

DATA ITITLE/27, 77, 65, 78, 80, 79, 87, 69, 82, 32, 73, 78, 32, 66, 85, 73, 
1 76, 68, 73, 78, 7 ! , 32, 68, 69, 83, 73, 7 1 , 78/ 
C ♦» ASCII EQUIVILENT OF 'HOURS' 

DATA IH/6,72,79,85,82,83/ 
C «» ASCII EQUIVILENT OF 'PERIOD' 

DATA IP/6,80,69,82,73,79,68/ 
C ♦» ASCII EQUIVILENT OF ' DESIGNER ' 

DATA IDESIN/8, 68, 69, 83, 73, 7 1 , 78, 69, 82/ 

DATA PERIOD/6 . , 784 . , 705 . , 706 . , 707 . , 708 . , 709 . / 

DATA DESINR/6.,I0.,28.,I0., 40. ,80., 56., 

1 6. ,49. ,52. ,49. ,142. ,37. ,120., 

2 6.,30.,55.,30., 20., 6., 49., 

5 6., 18., 12., 27., 10., 11., 44., 

6 6., 4H1.E30, 39., 166., 

7 6. ,72. ,107. ,72. ,43., 3., 22./ 
CALL INITTC120:> 

CALL BINITT 
C »» SET THE LINE TYPE IN COMMON 

CALL LINE C-11.:) 
C »• SET THE COMMON FOR THE PROPER BAR TYPE 

CALL SI2ELC12.> 

CALL XFRMC2> 

CALL DLIMXC704.,710.) 

CALL DLIMYC0.,200.:> 

CALL SLIMY C300,700D 

CALL XDENCS:) 

CALL checkcperiod,desinr:> 
CALL dsplaycperiod,desinr:> 

C *• PLOT THE REMAINING BARS 
DO 100 1-2,6 

100 CALL cplotcperiod,desinrci,id:> 

C ♦» PLACE TITLES ON THE GRAPH 

CALL NOTATEC300, 750, ITITLEC 1 D, ITITLEC2:>:> 
CALL NOTATEC350, 30, IDESINC 1 !>, IDESINC2^:> 
CALL NOTATEC500,200,IPCO,IP<2D3 
CALL MOVABSC50,550:) 
CALL VLABELCIHC 1 :>, IHC2)) 

CALL tinputck:) 

CALL FINITTC0,30) 
END 
C ♦♦ SUBROUTINE TO DECIDE THE BAR AND SHADING INSIDE 
SUBROUTINE ULINECX,Y,I> 
DATA XOFF, DEL, J/- . 06, . 1 , 0/ 
IFCI .NE. i:>GO TO 100 
XOFF«XOFF+DEL 
K«2 
J«J+1 



A-6 



4010A02 USER 



C «• LEGEND AT THE BOTTOM OF THE GRAPH 

CALL LEDGC500^30^J:) 

IPC J .LE. 6>G0 TO 100 

J-1 

XOFF— .6+DEL 
100 X2-X+X0FF 

IF<Y .6T. l.E30:>RETURN 

CALL symblcitcj:» 

CALL BARCX2,Y,K> 

CALL SYMBLC0> 

K-0 

RETURN 

END 



C ♦» FUNCTION WHICH HAS THE CODES FOR THE SHADING OF THE BARS 

FUNCTION ITCI> 

INTEGER ITTC6:> 
C M CODES FOR BAR SHADINGS 

DATA ITT/ \2,\,A^Q,\3, 8/ 

ITalTTCI^ 

RETURN 

END 
C ♦» ROUTINE TO PLACE LEGEND ON THE SCREEN 

SUBROUTINE LEDGCIX^ lY, I> 

DATA J/0/ 

J»J+1 

IFCJ .GT. i:>GO TO 100 

ILX«IX-80 

ILY=IY+30 
100 ILX«ILX+80 

CALL FILBOXCILX. ILY, ILX+60, ILY+60, ITC J5, 205 

CALL MOVABSCILX+20.ILY-30:> 

CALL ANCHO CJ+48? 

RETURN 



401 0A02 USER @ A-7 



H 

I 
6 
H 
E 
S 
T 

P 

E 
R 
C 

E 
N 

T 


F 

U 
S 

E 



68^ 
6% 



PREVALENCE AND EFFECTIVENESS OF MECHANISMS 
IN BUSINESS 


4^kkkkkkkkkH II II 1 1 II 




4<Kt<KKKMI 1 1 1 II 1 




4*MM^ 1 1 




<KKKKKH 1 




<m<m\ 1 1 1 1 1 1 




^1 1 II II 1 II 1 




,.,.,.,. 







20 



40 



60 



80 



100 



EVALUATION OF INDUSTRIAL RESOURCES 




LEVEL 



Figure A. 3. 2 



DIMENSION BAR K7) . BAR2C7. 3:> 

DIMENSION ILABEL<22^,JLABELC34:),KLABELC42:),LABELCm.LABELIC5) 

DATA BAR1/6..1..2.,3..4.,5.,6./ 

DATA BAR2/6.,2.,18.,19.,25.,22.,33., 

1 6., 50., 62., 60., 60., 76., 79., 

2 6., 100., 100., 100., 100., 100., 100./ 
C «• ASCII EQUIVILENT OF 'HIGHEST PERCENT OF USE' 

DATA ILABEL/72, 73, 7 1 , 72, 69, 83, 84, 32, 80, 69, 82, 67, 69, 78, 84, 
& 32,79,70,32,85,83,69/ 
C «• ASCII EQUIVILENT OF 'EFFECTIVENESS OF INDUSTRIAL RESOURCES' 
DATA JLABEL/69, 86, 65, 76, 85, 65, 84, 73, 79, 78, 32, 79, 70, 32, 
&73, 78, 68, 85, 83, 84, 82, 73, 65, 76, 32, 82, 69, 83, 79, 85, 82, 67, 69, 83/ 
C ♦• ASCII EQUIVELENCE OF 'PREVELENCE OF EFFECTIVENESS OF MECHANISM' 
DATA KLABEL/80, 82, 69, 86, 65, 76, 69, 78, 67, 69, 32, 65, 78, 68, 32, 
&69, 70, 70, 69, 67, 84, 73, 86, 69, 78, 69, 83, 83, 32, 79, 70, 32, 77, 
&e9, 67, 72, 65, 78, 73, 83, 77, 83/ 
C «» ASCII EQUIVELENCE OF 'IN BUSINESS' 

DATA LABEL/73, 78, 32, 66, 85, 83, 73, 78, 69, 83, 83/ 



A-8 



4010A02 USER 



C H ASCII EQUIVELENCE OF 'LEVEL' 

DATA LABEL 1/76^ 69^ 86^ 60, 76/ 

CALL INITTCI20> 

CALL BINITT 
C H SET SCREEN LIMITS TO INCLUDE TITLES 

CALL SLIMXC200^980:> 

CALL SLIMY C300. 7205 
C »♦ SET LABELS FOR Y TO NEGATIVE VALUE 

CALL C0MSETaBASEY<3:>,-l.> 
C *» FORCE TICS FOR Y TO SPECIFICATION WANTED 

CALL YTicsce:) 

CALL YWDTHC20:> 

CALL YFRMCi:> 

CALL YMFRMCi:) 

CALL XFRMC2:> 

CALL FRAME 
C *» SET DATA LIMITS 

CALL DLIMXC0.,100.:) 

CALL DLIMYC0.^8.> 
C *♦ DESIGN THE BARS AND DRAW THEM 

CALL HBARSTCITC O , 30, 20> 

CALL CHECKCBAR2,BARO 

CALL DSPLAYCBAR2,BAR1> 
C «» DRAW THE REST OF THE BARS 

DO 100 J«2,3 

CALL HBARSTCITCJ),30,20:> 
C *♦ PUT OUT THE LEGEND 

CALL LED6C530,30,J:) 

100 CALL cplotcbar2cuj:>,bari:> 

CALL LED6C530,30,3:> 
C »♦ PUT OUT VERTICAL LABEL 

CALL MOVABSC50, 700) 

CALL VLABELC22,ILABEL> 
C » PUT OUT GRAPH TITLES 

CALL NOTATE C400,30,5,LABELi:) 

CALL NOTATEC300,1 50,34, JLABELi) 

CALL NOTATEC250,700,42,KLABEL:> 

CALL NOTATEC440,650, 1 1 ,LABEL:> 

CALL TINPUTCi:> 

END 
C *» FUNCTION TO DESIGNATE BAR SHADING 

FUNCTION ITCi:> 

INTEGER ITTC3> 
C «• BAR SHADING CODE 

DATA ITT/ 12, 2,0/ 

IT«ITT<I) 

RETURN 

END 
C ♦» ROUTINE TO CALCULATE LEGEND 



4010A02 USER 



A-9 



SUBROUTINE LEDGCIX.IY.I) 

DATA J/0/ 

J-J+1 

IFCJ .GT. OGO TO 108 

ILX-IX-80 

ILY-IY+30 
100 ILX-ILX+80 

CALL FILBOXCILX,ILY^ILX+60,ILY+60,ITCJ:>,20:) 

CALL MOVABSCILX+20^ILY-30> 

CALL ANMODE 

CALL TOUTPTCJ+48:) 

RETURN 

END 
C »• ROUTINE TO OUTPUT THE USER LABELS ON THE Y AXIS 

SUBROUTINE USESETCFNUM, IWIDTH^ NBASE, LABELS 

DIMENSION LABELIC2) 

DIMENSION IASCILC27:> 
C *» ASCII EQUIVELENCE OF ALL THE LABELS 

DATA IASCIL/32, 32^ 32, 32, 54, 37, 32, 56, 37, 32, 57, 37, 
& 49,52,37,52,51,37,54,56,37,32,32,32,32,32,32/ 

IW«IWIDTH-3 

DO 100 I«1,IW 

100 labelici>-32 

ic«cifixcfnum:>h3:)+i 

IW"»IW+ 1 

DO 200 I-IW,IWIDTH 
LABELICI>-IASCILCIC:) 
200 IC-IC+1 
RETURN 
END 



A-10 



4010A02 USER 



leae 



see 



680 



4ee 



200 




Figure A. 4 



This graph demonstrates the same data plotted against a linear and a 
logarithmic Y axis varying slightly from Figure A. 



4010A02 USER 



A-11 



C «» DEMO PROGRAM USING LOG AND LINEAR PLOTTING 

REAL XPTSC11>.YPTS<11> 

XPTS<n-18 

YPTSCO-IG 
C ♦♦ GENERATE DATA POINTS FOR Y«Xhh3 

DO 180 1-2,11 

XPTSCID-FLOATCI-n 
108 YPTSCi:)«FLOATCI-l :)»*»»3 

CALL INITTC1205 

CALL BINITT 
C *• SET THE HORIZONTAL SCREEN LIMITS 

CALL SLIMXC388^988D 
C ♦» USE CHECK TO COMPLETE THE SPECIFICATIONS 

CALL CHECKCXPTS^YPTS^ 

CALL DSPLAYCXPTS^YPTS> 
C ♦» LOCATE Y AXIS TO LEFT OF FIRST AXIS 

CALL YL0CC-98> 
C *♦ PLOT LOG WITH CIRCLED DATA POINTS 

CALL SYMBLCS:) 
C ♦» MAKE Y AXIS A LOGARITHMIC TRANSFORMATION 

CALL YTYPEC2:> 
C !♦ SUPPRESS THE LABELING OF THE X AXIS A 2ND TIME 

CALL XLABC85 
C ♦♦ SUPPRESS THE DRAWING OF THE X AXIS A 2ND TIME 

CALL XFRMC8> 
C »♦ CHANGE THE FORM OF THE MAJOR TIC MARKS 

CALL YFRMC2> 
C *» RESET THE Y DATA LIMITS 

CALL DLIMYC8.,8.D 
C ♦» USE CHECK TO COMPLETE COMMON 

CALL CHECKCXPTS,YPTS> 

CALL DSPLAYCXPTS.YPTS> 

CALL TINPUTCIVYi) 
C ♦» DUMP COMMON TABLE IF C IS TYPED 

IFCIVY.NE.67:>G0 TO 288 

CALL COMDMP 
288 STOP 

END 
Cmmmmmmmmmkhmmmmmmmmmhmhhmmmmwmhmmhkkmmmmkmmmmmhmkhmmmmmmhhmh 



A-12 



4010A02 USER 



leee 




Figure A. 5 

This graph allows comparison of the same data plotted as 
logarithmic and as linear. 

C «♦ DEMO PROGRAM USING LOG AND LINEAR PLOTTING 

C «♦ THE LOGARITHMIC AXIS IS TO THE RIGHT OF THE GRAPH 

REAL XPTSC 1 1 :>, YPTSC 1 1 > 

XPTSCO-IG 

YPTSCn-lG 

DO 100 1-2,11 

XPTSCi:>-FL0ATCI-O 
100 YPTSCI)»FL0ATCI-1 5»»h3 

CALL INITTC120:) 

CALL BINITT 

CALL CHECKCXPTS,YPTS> 

CALL DSPLAYCXPTS^YPTS) 

LIMZ«0 

CALL SYMBLCO 

CALL YLABC2> 

CALL YTYPEC2:> 
C *• LOCATE THE Y-AXIS ON THE RIGHT OF THE GRAPH 

CALL YLOCRTCLIMZ:) 

CALL xlabcg:) 

CALL XFRMC0:) 

CALL YFRMC2:> 

CALL DLIMYC0.0:> 

CALL CHECKCXPTS,YPTS:> 

CALL DSPLAYCXPTS,YPTS> 

CALL tinputcivy:) 

STOP 
END 



4010A02 USER 



A-13 



ENGINE PERFORMANCE 



— 100 




12.5 



leee 



2000 3000 
Figure A. 6 



4000 



5000 



The engine performance graph uses DINITY to reinitialize tic mark 
label values. 



CM4*4»4*H»HHH»»t»«»f»4»4#MMM»»HM)»f»M«»4«4*MMMM»*)»)»HI»*fMI«4*4*MHMM}»l»HHHM4*«»MHHMM}» 

DIMENSION RPMC4:>,POWC28:>,SPC<20>,TORC20:>,LAB1C18^,LAB2C10:> 
8.,LAB3<16),LAB4C6:) 
C «» LABEL LENGTHS 

Ll-18 

L= 10 

L3«16 

L4-6 
C »♦ GRAPH TITLE: ENGINE PERFORMANCE 

DATA LABl/69^ 78^ 71^73,78^69^ 32^ 80^69, 82^ 70^ 79^ 82^ 77^ 65^ 78^ 67, 69/ 
C *♦ SCALE LABEL: HORSEPOWER 

DATA LAB2/72, 79, 82, 83, 69, 80, 79, 87, 69, 82/ 
C H SCALE LABEL: FUEL CONSUMPTION 

DATA LAB3/70, 85, 69, 76, 32, 67, 79, 78, 83, 85, 77, 80, 84, 73, 79, 78/ 



A-14 



REV. A, MAR. 1978 



4010A02 USER 



C ♦» SCALE LABEL* TORQUE 

DATA LAB4/84, 79, 82, 8 1 , 85, 60/ 

DATA RPM/-1 .,19.,1900.,175./ 

DATA P0W/I9., 14., 20., 23., 27., 31., 34., 37., 40., 42., 44., 46., 47. 5, 
&48., 49., 49. 5, 49. 9, 50. 3, 50. 5, 50. 6/ 

DATA SPC/19., 13.7, 13.5, 13. 17, 12.77, 12.30, 1 1 .8, 1 1 .25, 10.65, 10.0, 
8.9.35,8.8,8.35,8.0,7.8,7.7,7.65,7.66,7.8,8.1/ 

DATA TOR/19. ,60. ,64. ,68. ,71 .5,74.9,77.9,80.4,82.3, 
&84., 86., 87. 2, 88., 88. 6, 87. 9, 87. 2, 86., 84. 8, 83., 81 ./ 

CALL INITTC120:> 

CALL BINITT 

CALL SLIMXC200,800> 
C «♦ EACH Y-AXIS TIC INTERVAL WILL SPAN 40 RASTER UNITS 

CALL SLIMY CI 00, 100+1 6»»40:> 

CALL YTICSCie:) 

CALL CHECK CRPM,POW> 

CALL DSPLAYCRPM, POW:> 
C »» Y-DATA DIFFERS IN THE SECOND CURVE, SO REINITIALIZATION IS NEEDED 

CALL DINITY 
C •» SECOND CURVE SPANS 6 TIC INTERVALS 

CALL SLIMYC140, 140+6M0> 

CALL YTICSC6> 

CALL LINEC54> 

CALL YLOCRTC0:> 

CALL XFRMC0> 

CALL XLABC0> 

CALL YFRMC2> 

CALL CHECK CRPM,SPC:> 

CALL DSPLAYCRPM SPC) 
C «» THIRD CURVE IS HANDLED SIMILARLY TO SECOND CURVE 

CALL DINITY 

CALL LINEC7434> 

CALL YTICSC4:> 

CALL SLIMYC460,460+4«»40) 

CALL CHECKCRPM,TOR) 

CALL DSPLAYCRPM, TOR) 
C ♦» PRINT LABELS INTERACTIVELY 

CALL DCURSRCIC,IX,IY) 

CALL MOVABSCIX,IY) 

CALL HLABELCLl,LABn 

CALL DCURSRCIC,IX,IY> 

CALL movabscix,iy:> 

CALL VLABELCL2,LAB25 
CALL DCURSRCIC,IX,IY) 

CALL movabscix,iy:> 

CALL VLABELCL3,LAB3> 
CALL DCURSRCIC,IX,IY> 

CALL movabscix,iy:> 

CALL VLABELCL4,LAB4> 
CALL TINPUTCIVYi) 
CALL FINITTC0, 700> 
END 



401 0A02 USER @ A-15 



5.0 
4.5 

4.e 

3.5 
3.0 
2.5 
2.0 
1.5 
t.0 





y 








"\ 


^ 










/ 










\ 












































\ 




















\ 






















\ 




















\ 
























lllllllll 


lllllllll 


lllllllll 


lllllllll 


lllllllll 


lllllllll 


lllllllll 


lllllllll 


lllllllll 



3.000001 3.000003 3.000005 3.000007 3.000009 

3.000002 3.000004 3.000006 3.000008 3.000010 

X10® 



C *f PROGRAM TO DEMOMSTRATE THE REMOTE EXPONENT AND LABEL STAGGERING 

REAL XPTSCIO.YPTSCIO 

XPTSCO-10 

YPTS<n-10 

BASEO3000000 

DO 100 1-2,11 

XPTSCi:>-'BASE+ 1 *»FLOATCI- 1 ^ 
1 00 YPTSCi:>- 1 0000000»frC50-FLOATCI-53 »>»2> 

CALL INITTC30> 

CALL BINITT 

CALL XDENC10:> 

CALL YDENC10:) 

CALL CHECK CXPTSAPTS> 

CALL DSPLAYCXPTS.YPTS) 

CALL TINPUTCIVYD 

CALL FINITTC0, 700) 

END 



Figure A. 7 



This graph demonstrates use of a remote exponent and staggered labeling. 



A-16 



4010A02 USER 



480 
350 
300 
250 
200 
150 

100 

22 24 26 28 30 32 34 36 

Figure A. 8 

A user written symbol routine. 









35 


"■'y. 












306. 


00-S>^ 


y^ 


\ 


325. 0£ 


> 








/ 




291.00-^ 


^ 






















\ 
















1 M ^^ 


















1 


I 


I 


I 


1 


\ 



4010A02 USER 



A-17 



DIMENSION XARRAYC7).YARRAYC75 

DATA XARRAY/6.,22.0,24.5.27.9.29.5.32.8,34.5/ 

DATA YARRAY/6.,21t.,ll4.,306.,354.,291.,325./ 

CALL INITTC120> 

CALL BINITT 

CALL SYMBLC-ID 

CALL CHECK CXARRAY,YARRAY> 

CALL DSPLAYCXARRAY,YARRAY> 

CALL TINPUTCi:) 

CALL FINITTC0^7a0D 

STOP 

END 
C » ROUTINE TO LABEL POINTS WITH Y VALUE 

SUBROUTINE USERSCX^ Y,ISYM> 

INTEGER lAClS:) 

LOGICAL 6ENFLG 

DATA IYOLD,ISI2/98987,20/ 
C » CONVERT TO SCREEN COORDINATES 

CALL WINCOTCX^Y,IX,IY> 
C » THIS CODE IS A FIRST ENTRY BRANCH 

IFCIYOLD .EQ. 989875G0 TO t00 
C » STORE SLOPE OF LINE -DOWN OR UP- FOR LABEL LOC 

ISIG-IY-IYOLD 
C * BRANCH IF POINT IS OUTSIDE OF WINDOW 

IFC6ENFLGCO>G0 TO 100 
C * GET PARAMETERS FROM AXIS COMMON TO DEFINE LENGTH OF LABEL 

NBASE-IBASEYC0> 

NDEC-COMGETCNBASE+ 1 0>+2 

IWIDTH-COMGETCNBASE+1 7>+3 

lEXP-COMGETCNBASEi- 1 8> 
C * CONVERT Y VALUE TO ALPHA STRING 

CALL FFORMCY/ 1 . infrlEXP, IWIDTH, NDEC, lA, 32:> 
C 1* RIGHT JUSTIFY LABEL 

CALL JUSTERCIWIDTH. lA. 1 , 32, LEN. IOFF> 
C 4» DRAW SMALL ARROW ABOVE OR BELOW LINE 

CALL MOVABSCIX- 1 0, IY+ISIGNC2, ISIG> > 

CALL DRWABSCIX,IY3 

CALL DRWABSCIX-2, lY+ISIGNC 1 0, ISIG> > 

CALL MOVABSCIX, IY3 

CALL DRWABSCIX-ISI2, lYt-ISIGNCISIZ, ISI6>5 

CALL DRWABSCIX-ISIZ-5, lYi-ISIGNCISIZ, ISIG^i) 
C *» WRITE OUT LABEL 

IYPOS«IY+ISIGNCISIZ, ISIG5-8 

CALL N0TATECIX-ISIZ-7-»-I0FF, lYPOS, LEN, IACIWIDTH-LEN+ 1 ) > 
C » PREPARE FOR NEXT SLOPE CALCULATION 
100 IYOLD«IY 

RETURN 

END 



A-18 



4010A02 USER 



1964-1972 
1972- 



1971 — 
1979 — 
1969 — 
1968 — 
1967 — 
1966 — 
1965 — 
1964 — 



^Oi-m. u .i^isuj 



s 






' go " 



o»"'ao 






1 






KIN^^UppIr IN^^U^^Ir IN^^U^^K IN^y^^U^^^^ r'oa A 






ss: 



'^w^qg nggA 



'^U^ 



un m 



FO~FFO 




I I I I [ I i 1 I I 1 1 I I I 1 I I I I I 1 I I 

599 1999 1599 2999 2599 

Figure A. 9 



User written line routine produces train bars 

C DRIVER PROGRAM FOR TRAIN GRAPH 
REAL YPTSC5>, XPTSCl 1> 
DATA YPTS/-2., 19.,1.,1963., 1./ 

DATA XPTS/19., 759. ,1299., 1 125., 1925. , 1559. ,2299. ,2399. ,999., 
& 1659., 1859./ 
CALL INITTC129:> 
CALL BINITT 
CALL XZER0C9:> 
CALL YDENC19:) 
CALL SLIMXC299,999:> 
CALL YFT?MC2:> 
CALL XFRMC2> 
CALL LINEC-llD 
CALL CHECK CXPTS,YPTS) 
CALL DSPLAYCXPTS,YPTS) 
CALL FRAME 
CALL TINPUTCJAKE) 
CALL FINITTC9,95 
END 



4010A02 USER 



A-19 



SUBROUTINE ULINECX.Y,I> 

call moveac0..y-255.) 
call drawacx.y-255.:) 
ifci me. ogo to 180 
ticint-c0mgetcibaseyc5>> 
amin-c0m6etcibaseyc1 1 » 
amax-comgetcibaseyc 1 2» 
scale-camax-amin:>/ticint 
call rscaleca.8»scale:> 

108 NUM=X/500.+l. 

CALL TRAINCNUMi) 

RETURN 

END 

C ROUTINE TO DRAW TRAIN 

SUBROUTINE TRAINCNUM> 
REAL ARRAY 1 C3, 485 , ARRA Y2C3, 495 

DATA ARRAY2/32..-.0700,8..32., .8821, .8886,32.. .8678, .8,32. ,8.. 
& -.8785,32.,-! .5688,8. ,32. ,-.8821, ^ 

& .8886,32. ,.8658,8. ,32. ,8. ,-.8785,32. ,-.8821, 8. 5541, 32. ,1.4416, 
& -.8821, 32., 8., -.5528, 77., -.8483,-. 8955, 32., -.8339, -.8467, 32., 
8. -.8636, .8,32. ,-.8276, .8538,32., .8276, .8594,32., .8679,8. ,32., 
& .827, -.8594, 77., -.1528, .8863,32. ,-.8483,-. 8573,32. ,-.8788,8. ,32., 
8. -.8297, .8594,32., .8297, .8538,32., .8721, 8. ,32., .8318,-. 8531 ,77., 
& -1.1974,-. 8864,32. ,.8254,-. 8589,32., . 8743,8., 32. , .8297, .8552,32., 
«. -.8368, .8552, 32. ,-.8679,8. ,32. ,-.0233,-. 0530, 77., . 1528,8. ,32. , 
& .8361, -.8552, 32., .8785,8. ,32., .8233, .8589,32. ,-.8318, .8594,32., 
& -.8679,8. ,32. ,-.8361, -.0531, 77. ,.81 18, .8998, 32., -.8821, .4968, 
& 32. ,-.5698, .8821,32. ,8.,-. 4989,32., .5698,8. ,32. ,-.2824, .4947,32., 
& 8. ,-.4925, 77. ,8., .4968,32. ,-.2866, -.4968, 77., -.5874, -.8254/ 

DATA ARRAYl/77.,-.8517, .8742,32. ,-.0292, . 1281 ,32. ,-.0449, .4472, 
& 32. ,-.0921, .0269, 32., -.0629, .0831,32.,-! .3460,0. ,32., 0.,-. 4921 , 
& 32. ,-.065!, -.0022,32. ,-.0022,-. 0674,32., .065! ,0. ,32. ,-.0022, 
& . 0651, 32. ,0.,-. 0674,32., . 3438,0., 32. , . 0449, -.0898, 32. , .5932,0., 
& 32., .0517, .0921,32., .2943,0. ,32., .0719,-. 1213,32., . 1798,0. ,77., 
& -.2382, .8449,32. ,-.8224,-. 8696,32. ,-.8719,8. ,32. ,-.0202, .0651, 
& 32., .0224, .0606,32., .0719,0. ,32., . 0202,-. 0607, 77. ,-. 1416,0. ,32. , 
& - . 0247, - . 065 1 , 32 . , - . 0674, . 0023, 32 . , - . 0247, . 0607, 32 . , . 0292, . 0652, 
& 32., .0674,0. ,32., .0179, -.0607, 77. ,-.8517,-. 8823, 32. ,-.8278, 
& -.8629,32. ,-.8674,8. ,32. ,-.8269, .8687,32., .8269, .8629,32., .8651, 
& 8. ,32., .8292,-. 8687, 77. ,-. 1483,8. ,32. ,-.8292,-. 8629, 32. ,-.8764, 
& 8. ,32. ,-.8224, .8687, 32. , .8337, .865! ,32. , .8629,8. ,32. , .8269, 
& -.8629,77., -.2687, .8831/ 
C PUT OUT THE LOCOMOTIVE 
188 DO 488 J"!, 48 

IFCARRAY!C1,J5.EQ.77.5S0 TO 358 
CALL DRAWRCARRAY1C2,J5,ARRAY1C3,J55 
GO TO 488 
358 CALL MOVERCARRAYl C2,J>, ARRAY K3,J5> 
488 CONTINUE 
C PUT OUT NUM BOXCARS 
DO 888 K«!,NUM 
DO 688 J- 1,49 

IFCARRAY2C1,J5.EQ.77.>G0 TO 558 
CALL DRAWRCARRAY2C2,J>,ARRAY2C3,J5> 
GO TO 688 
558 CALL M0VERCARRAY2C2,J>,ARRAY2C3,J5> 
688 CONTINUE 
888 CONTINUE 
900 RETURN 



A-20 



4010A02 USER 



APPENDIX B 



User Routines 

Most users will never need the routines described in this section and 
need not read this section. They are included so that the b% of our 
customers who require special features not supported by the standard 
routines may conveniently add them to the package. With such flexibility 
there are many opportunities to make errors. We therefore strongly 
suggest that the programmer become familiar with the standard features of 
the package before experimenting with the user routines. It is recommended 
that a standard plot close to the desired special plot be generated and 
debugged first before linking in any special routines. It is also 
suggested that the user routines be tested as much as is practical 
alone before they are merged with the standard package. 



There are currently six user hooks supplied in the AG-II package: 

Two routines, UMNMX and UPOINT, are used to expand a 
user defined short form. 

Two routines, ULINE and USERS, are used to implement 
special line types and special symbols. 

One routine, USESET, is used to pass user defined 
labels to the axis labeling routines. 

One routine, SOFTEK, is used in conjunction with the 
Tektronix Character Generation System. 

These are described briefly below. 

If the user wishes to have an unsupported short form, he must replace 
both UMNMX and UPOINT. UMNMX will return a minimum and maximum when 
given a short form, and UPOINT will return X, Y coordinates when given 
the same short form. UPOINT may also be written as a function of the 
X array in the form Y=f(x). UMNMX and UPOINT are invoked if the first 
entry of the data is less than -2. 

If the user needs a different type of line such as extra heavy or a 
stepped line, ULINE can be rewritten to support this function. The 
routine is invoked once for each point in the plot to draw the desired 
pattern. The routine is controlled by specifying a negative line tvpe 
less than -10. If several patterns are required, several negative line 
types may be chosen with ULINE executing a case branch. 



401 0A02 USER @ B-1 



A special symbol may be added to the package by recoding USERS. This 
routine is called once for each point plotted if the symbol type is set to 
a negative value. This routine may then perform any function desired by 
the user. During the development period, USERS was used to implement bar 
charts to check concepts connected to bar charts. This routine may be 
used to make point dependent symbols such as a routine to print out the 
value of a point on the plot. 

The fifth routine is designed to help the user use the standard label 

routine to put non-standard labels on an axis. At each labeled tic mark, 

USESET is called with an array in which can be placed suitable character 

codes right justified. These are processed by LABEL to provide 

justification, and are printed on the labels. LABEL calls USESET if 
the label type is negative. 



B-2 



4010A02 USER 



Subroutine UMNMX 

USED: Called by MNMX to resolve user (non-standard) short forms. A non- 
standard short form data array is defined to be any array whose first 
entry is less than -2. 

CALL UMNMX(ARRAY,AMIN,AMAX) 

PURPOSE: This routine calculates the minimum and maximum of the given 

short form and returns the lesser of that minimum and AMIN, and 
the greater of that maximum and AMAX. This routine will only 
be invoked for short forms not supported by standard code. 

ARGUMENTS : ARRAY Input array (short form) 

ARRAY(l) Negative number representing type. Must 
not be one currently supported. 

ARRAY (2) Number of points represented in this array. 

AMIN Input: current minimum data value. 

Output: The minimum of all data values or AMIN 

AMAX Input: current maximum Data value. 

Output; The maximum of all data values or AMAX. 



is always used with the function UPOINT. 



401 0A02 USER @ B-3 



Function: UPOINT 

USED: Called by DATGET to resolve user short forms 

V = UPOINT(ARRAY,I,OLDONE) 
PURPOSE: To provide a data value, on demand, to be plotted. 
ARGUMENTS: ARRAY Input array (short form) 

ARRAY(l) negative number representing type. 

ARRAY(2) number of points 

I number (Index) of point being plotted. Runs from 1 to 
number of points in steps of STEPL 

OLDONE This is the previous value calculated by DATGET. 
Y = f(x) may be coded as Y = f(OLDONE) 
X = f(OLDONE) is really equivelent to: 
X = f(Y(I-l)) 



B-4 



4010A02 USER 



OIMENSION XDAT^(7>.Y0^Tf^<2> 
CWTA XDATrt/6 /l.>2..3..4.,5.*6./ 

CALL 1HITK120) 

CALL BINITT 

CALL CHECK< XOATA .. YDATA ) 

CALL DSPLA Y< XDATA . YOAT A > 

CALL FINITK 0.700) 

STOP 

END 

FUNCTION UP0INT<ARRAYiI,OL00NE) 

Y=X SQUARED 

UPOINT«OLDON£*OLDONE 

RETURN 

END 

SUBROUTINE UnNMXCARRAYiAtllN.AMAX) 

DIMENSION ARRAY(2) 

AMIN=1 . 

AMAX-36. 

RETURN 

END 




4010A02 USER 



B-5 



Subroutine ULINE 



USED: 



PURPOSE 



ARGUMENTS: 



Called by CPLOT once for each point if line type is less than 
-10. 

CALL ULINECX,Y,I) 

This routine permits the user to do special moves and draws 
between points. It should be used for features occurring 
between points. A similar routine is provided for features 
occurring at points. 

X X (Horizontal) coordinate in data space 

Y Y (Vertical) coordinate in data space 

I Number (Index) of the data point in question. I varies 
from 1 to number of points in increments of STEPL . 



B-6 



4010A02 USER 



NT 



D I MENS I m KDAT A< 7 > > YDAT^( ? > 

DATm J;DATA/6 .>1..2..3..4..5.>6./ 

OATft YDWTPi/6 . . 211 . . U4 . . 306 . . 354 . , 291 . . 325 . / 

IHLL IHI 71(120.^ 

CALL BINT IT 

CmLL L1NF<-1) 

CALL CHECKS J^DATA. YD^^TA ) 

CALL OGPLAY( XDATA. YOATH > 

CALL FINITK 0.700) 

STOP 

END 



166 



SUBROUTINE ULIHE(X.Y/I) 

IFa.EQ.DGO TO 100 

CALL DRAlW.XwYOLD) 

CALL DRAWACX.Y) 

YOLD=Y 

RETURN 

END 



4ee 



350 



300 



2!56 



200 



150 



100- 



I — I — I — I — I I i — r-T — [ I I I I I I I I I 

3 4 5 6 



T—l — T-T 



4010A02 USER 



B-7 



Subroutine: USERS 



USED; 



PURPOSE: 



Called by BSYM once for each point if symbol type (CSYMBL) 
is less than zero. 

CALL USERS (X,Y, IS YM) 

This routine permits the user to construct his own symbols at 
each data point. It has more flexibility than the standard 
TEKSYM in that the actual data value is available. 



ARGUMENTS: X X (horizontal) data value of point 

Y Y (Vertical) data value of point 

ISYM The desired symbol code (will always be less than zero) 

PROGRAMMING CONSIDERATIONS: 

Normally a move will be made to the point represented by X,Y 
before entry into this subroutine. This subroutine is invoked 
even if the point is outside of the visible window. It is 
therefore the users responsibility to use virtual moves 
and draws ,or check for visibility. A GENFLG value of D indicates 
symbol will be within the window. 

Example: See Figure A. 2. 



B-8 



4010A02 USER 



Subroutine USESET 



USED: 



PURPOSE: 
ARGUMENTS: 



This routine is called by label for each labeled tic mark 
if a label type is less than zero. 

CALL USESET(FNUM,IWIDTH,NBASE,LABELI) 

This routine is provided for people who wish to provide 
their own labels on the tic marks. 

FNUM data value represented by tic mark. For linear 
data FNUM is the unsealed value of the tic mark. 

For logarithmic data FNUM is logio of the tic 
mark value. 

For calendar data FNUM is the number of label 
intervals numbered from the first period of the 
initial year and incremented continuously for 
the entire axis. 



Examples: For two years of months starting in 

January, FNUM would be 1, 2, 3, ...12, 
13,14, ...23,24, incrementing by months. 

For a two year bi-monthly series, FNUM 
would be 2,4,6, ...20,22,24. 

For two years of months beginning in 
July, FNUM would be 7,8,9,. . .28,29,30. 

IWIDTH width of label. IWIDTH is specified by the AG-II 
call to USESET. The user must pass out a label of 
this width. (IWIDTH is 20 in distributed version 
of AG-II.) 

NBASE Pointer to COMMON section of related axis. Will 
be equal to either IBASEX(O) or IBASEY(O). 

LABELI Integer array of length IWIDTH to be filled with 
character codes. Actual label should be right 
justified, and leading unused characters should 
be filled with blanks (code 32). 



4010A02 USER 



B-9 



C « EXAMPLE OF A USER DEFINED LABEL 

DinENSION XDATA<7).VDATA<7) 

DATA XDATA/6 .,l..a.,3..4.>5.,6./ 

DATA VDATA/6. .311 ., 114 . ,306. ,354 . ,291 . . SES./ 

CALL INITT(30) 

CALL BINITT 

CALL XLAB(-l) 

CALL XUDTHCIO) 

CALL CHECK (XDATA,VDATA) 

CALL DSPLAV ( XDATA / VDATA ) 

CALL FINITT(O,70O) 

STOP 

END 
C «* SUBROUTINE TO DEFINE USER DEFINED LABEL 

SUBROUTINE USESET (FNUM, IUIDTH,NBASE, LABEL I ) 

DIMENSION LABELS( 10 , 6 ) , LABELI C20 ) 
C N U E S T 

C S U E S T 

C N E A S T 

C S E A, S T 

C QRLAKES 

C SO CENTRAL 

DATA LABELS/3a , 33 , 32 , 32 , 32 , 78 , 87 , 69 , 83 , 84 , 
& 32,32.32,32,32.83,87,69,83,84, 

& 32,32,32,32,32,78,69,65,83,84, 

& 32,32.32,32,32,83,69,65,83,84, 

& 32,32,71,82,46,76,65,75,69,83, 

& 83,79,46,67,69,78,84,82,65,76/ 

I-FNUn-f0.5 

DO lOe K-1,IUIDTH 
100 LABELKK )-LABELS(K, I ) 

RETURN 

END 



B-10 @ 401 0A02 USER 



400 



350 



300 



850 



500 



150 



100 



*■ 








k., 










i/ 




^ 






/ 




> 


^ 






/ 








mm 


\ 


/ 








h 


\ 


/ 










1 1 1 1 


1 1 1 1 " 






1 1 1 1 



NUEST 

SUEST 



NEAST 



QR . LAKES 



SEAST 



SO. CENTRAL 



Subroutine: SOFTEK(I$YM) 



USED: Called by BSYMS to supply non-standard symbols from 

an independent Character Generation system such as 
the Tektronix 4010A05 PLOT 10 Character Generation 
System. A value greater than 127 in CSYMBL causes 
SOFTEK to be cal led. 

CALL SOFTEK(ISYM) 

PURPOSE: This routine allows symbols to be used from an 
independent character generation system. 

ARGUMENTS: ISYM is the symbol code (will always be greater 

than 127). 



4010A02 USER 



B-11 



ASCII CODE CHART 





^^86 


85 


•% 


•», 


^0 


"'. 


'% 


'», 


'u 


^^ 


BITS 

B4 B3 B2 81 


CONTROL 


HIGHX&Y 
GRAPHIC INPUT 


LOWX 


LOWY 














NUL 




DLE 

16 


SP 

32 




48 


@ 

64 


p 

80 


\ 
96 


P 

772 











1 


SOH 

1 


DCl 

77 


I 

33 


1 

49 


A 

65 


«., 


a 

97 


q 

113 








1 





STX 

2 


DC2 

18 


34 


2 

50 


B 

66 


R 

82 


b 

98 


r 

114 








1 


1 


ETX 

3 


DCS 

79 


# 

35 


3 

57 


C 

67 


S 

83 


c 

99 


s 

115 





1 








EOT 

4 


DC4 

20 


$ 

36 


4 

52 


D 

68 


T 

84 


d 

700 


t 

116 





1 





1 


ENQ 

5 


NAK 

27 


% 

37 


5 

53 


E 

69 


U 

85 


e 

707 


u 

777 





1 


1 





ACK 

6 


SYN 

22 


& 

38 


6 

54 


F 

70 


V 

86 


f 

702 


V 

118 





1 


1 


1 


BEL 

7 


ETB 

23 


1 
39 


7 

55 


G 

77 


w 

87 


g 

703 


w 

119 













BS 

8 


CAN 

24 


( 

40 


8 

56 


H 

72 


X 

88 


h 

704 


X 

720 










1 


HT 

9 


EM 

25 


) 

41 


9 

57 


1 

73 


Y 

89 


i 

705 


y 

121 







1 





LF 

10 


SUB 

26 


42 


■ 
58 


J 

74 


Z 

90 


J 

706 


1 

122 







1 


1 


VT 

11 


ESC 

27 


+ 
43 


m 

5 

59 


K 

75 


91 


k 

707 


723 




1 








FF 

72 


FS 

28 


5 

44 


< 

60 


L 

76 


\ 

92 


1 

708 


724 




1 





1 


CR 

13 


GS 

29 


45 


61 


M 

77 


] 

93 


m 

709 


} 

725 




1 


1 





SO 

74 


RS 

30 


46 


> 

62 


N 

78 


A 

94 


n 

770 


726 




1 


1 


1 


SI 

75 


US 

31 


/ 

47 


? 

63 




79 


~ 95 




777 


RUBOUT 
(DEL) 
727 



B-12 



4010A02 USER 



CHECK 
(X.YI 



TYPCK 
(NBASE,ARRAY) 



RGCHEK 
(NBASE,ARRAY) 



ERREC 

(I) 



ADVANCED GRAPHING II 



OPTIM 
(NBASE) 



MNMX 

(ARRAY ,AMIN, 

AMAX) 



CMNMX 

(ARRAY,AIV11N, 

AMAX) 



WIDTH 
(NBASE) 



COPTIM 
(NBASE) 



CALCON 
(AMIN,AIVIAX, 
LABTYP.GET) 



UMNMX 

(ARRAY ,AMIN, 

AMAX) 



LOPTIM 
(NBASE) 



FINDGE » 
(VALUE.TABLE, 
IPOINT) 



SPREAD 
(NBASE) 



TSET 
(NBASE) 



TSET2 

(newlocnfar; 

NLEN, NFRM, 
KSTART.KEND) 



CPLOT 
(X,Y) 



KEYSET 
(ARRAY ,KEY) 



DATGET 
(ARR.I.KEY) 



LWIDTH 
(NBASE) 



ROUNDO 
(VALUE,F(NT) 



UPOINT 
(ARR.II, 
OLDONE) 



ROUNDD 
(VALUE.FINT) 



CALPNT 
(ARRAY, I) 




LABEL 
(NBASE) 



ULINE 
(X,Y,I) 



LOGTIX 

(NBASE,START, 

TINTVL.MSTART, 

MEND) 



BSYMS 
(X.Y.ISYM) 



BAR 
(X,Y,LINE) 



FILBOX 

(MINX.MINY, 

MAXX.MAXY, 

ISYMB.LSPACE) 



YDYMD 

(lYR.IDAYS, 

IYEAR,MONTH, 

IDAY) 



USESET 
(FNUM.IWIDTH, 
NBASE.LABELI) 



FRAME 

TEKSYM 

(ISYM.FACTOR) 



REMLAB 

(NBASE ,ILOC, 

LABTYP,1RX,IRY) 



NUMSET 

(FNUM.IWIDTH, 

NBASE.IARRAY, 

IFILL) 



SYMOUT 
(ISYM.FACTOR) 



FFORM 

(FNUM.IWIDTH, 

IDEC.IARRAY. 

IFILL) 



USERS 
(X.Y.I) 



SOFTEK 
(ISYM) 



EFORM 

(FNUM.IWIDTH. 

IDEC.IARRAY, 

IFILL) 



TEKSYM 
(ISYM) 



FONLY 

(FNUM.IWIDTH. 

IDEC.IARRAY. 

IFILL) 



ESPLIT 
(FNUM.IWIDTH. 
IDEC.IEXPON) 



ALFSET 
(FNUM.KWIDTH, 
LABTYP.LABELI) 



EXPOUT 

(NBASE .lEXP. 

lARRAY.NCHARS, 

IFILL) 



IFORM 
(FNUM.IWIDTH, 
IARRAY,IF1LL) 



YMDYD «ii 
(lYEAR, IDAYS, 
lYR.MONTH.IDAY) 



lUBGC 

(lYEAR.IDAYS, 

lUBGCX) 



JUSTER 

(LENSTR.IARRAY. 

IPOSIT.IFILL, 

LENCHR.IOFF) 



MONPOS 
(NBASE ,IY1, 
DPOS,SPOS) 



GLINE 

(NBASE.DATAPT. 

SPOS) 



OUBGC 

(NYEAR. IDAYS. 

lUBGCX) 



LEAP 
(lYEAR) 



LOCLE M 
(IVALUE.TABLE. 
IPOINT) 



NOTE: Gray shading indicates all 

routines required for checking 
section of AG-li 



NOTATE 

(IX.IY.LENCHR. 

lARRAY) 



COMSET 
(ITEM.VALUE) 


COMGET 

(ITEM) 





IBASEC 
(lOFF) 




IBASEX 
(lOFF) 


IBASEY 
(lOFF) 




lOTHER 
(NBASE) 





VSTRIN 
(lARRAY) 



REV, JAN 1982 



VLABEL 
(NCHAR, lARRAY) 





HSTRIN 
(lARRAY) 










HLABEL 
(LEN,IARRAY) 





SUBROUTINE AND FUNCTION INDEX 

BAR 4-9 

BIN ITT 2-7 

BSYMS (X, Y, ISYM) 4-7 

CHECK (XARRAY, YARRAY) 2-8 

COMGET(ITEM) 4-36 

COMSET (ITEM, VALUE) 4-34 

CPLOT (XARRAY, YARRAY) 2-10 

DINITX 2-13 

DINITY 2-13 

DLIMX (XDMIN, XDMAX) 3-48 

DLIMY (YDMIN, YDMAX) 3-48 

DSPLAY (XARRAY, YARRAY) 2-9 

EFORM (FNUMBER, IWIDTH, IDECIMAL, lARRAY, IFILL) 4-20 

EXPOUT (NBASE, lEXP, lARRAY, LENGTH, IFILL) 4-23 

FFORM (FNUMBER, IWIDTH, IDECIMAL, lARRAY, IFILL) 4-21 

FILBOX (MINX, MINY, MAXX, MAXY, ISYMB, LSPACE) 4-10 

FINITT* 1-3 

FRAMW 2-30 

GRID 4-12 

HBARST (ISHADE, IWBAR, IDBAR) 2-20 

HLABEL (LENGTH, ISTRIN) 2-31 

HSTRIN (ISTRIN) 2-31 

IBASEC(IWORD) 4-37 

IBASEX(IWORD) 4-38 

IBASEY(IWORD) 4-39 

IFORM (FNUMBER, IWIDTH, lARRAY, IFILL) 4-22 

INFIN (IVALUE) 3-15 

INITT* 1-2 

lUBGC (lYEAR, IDAYS, lUBGCX) 4-25 
JUSTER (LENGTH, ISTRING, KEY POSITION, IFILL CHARACTER, 

LEN, lOFFSET) 2-35 

LABEL (NBASE) 4-12 

LINE (IVALUE) 3-7 

MNMX (ARRAY, AMIN, AMAX) 4-2 

MOVABS * 2-25 

NOTATE (IX, lY, LENCHR, ISTRIN) 2-31 

NPTS (IVALUE) 3-16 

NUMSET (FNUMBER, IWIDTH, NBASE, lARRAY, IFILL) 4-18 

OPTIM (ARRAY, AMIN, AMAX, LEN, NBASE) 4-16 

OUBGCdYEAR, IDAYS, lUGBCX) 4-25 

PLACE (LIT) 3-50,3-52 

RESCOM (ARRAY) 4-4 
SAVCOM (ARRAY) 

*Terminal Control System Routines, See Tektronix User Manual. 

401 0A02 USER @ 1-1 



SETWIN 4-14 

SIZEL (VALUE) 3-22 

SIZES (VALUE) 3-20 

SLIMX (ISMIN, ISMAX) 3-50 

SLIMY (ISMIN, ISMAX) 3-50 

STEPL(IVALUE) 3-18 

STEPS (IVALUE) 3-13 

SYMBL(IVALUE) 3-10 

SYMOUT (ISYM,FACTOR) 4-8 

VBARST (ISHADE, IWBAR, IDBAR) 2-20 

VLABEL (LENGTH, ISTRIN) 2-33 

VSTRIN (ISTRIN) 2-33 

WIDTH (NBASE) 4-15 

XDEN (IVALUE) 3-34 

XETYP (IVALUE) 3-62 

XFRM (IVALUE) 3-42 

XLAB (IVALUE) 3-32 

XLEN (IVALUE) 3-40 

XLOC (IVALUE) 3-28 

XLOCTP (IVALUE) 3-30 

XMFRM (IVALUE) 3-45 

XMTCS 3-44 

XNEAT (IVALUE) 3-24 

XTICS (IVALUE) 3-38 

XTYPE (IVALUE) 3-55 

XWDTH (IVALUE) 3-58 

XZERO (IVALUE) 3-26 

YDEN (IVALUE) 3-34 

YDYMD (lYEAR, IDAYS, lYEAR, MONTH, IDAY) 4-27 

YFRM (IVALUE) 3-42 

YETYP (IVALUE) 3-62 

YLAB (IVALUE) 3-32 

YLEN (IVALUE) 3-40 

YLOC (IVALUE) 3-28 

YLOCRT (IVALUE) 3-30 

YMDYD (lYEAR, IDAYS, IYEAR2,M0NTH, IDAY) 4-28 

YMFRM (IVALUE) 3-45 

YMTCS 3-44 

YNEAT (IVALUE) 3-24 

YTICS (IVALUE) 3-38 

YTYPE (IVALUE) 3-55 

YWDTH (IVALUE) 3-58 

YZERO (IVALUE) 3-26 



1-2 



4010A02 USER 



SUBJECT INDEX 



Axis Location 
Bar Charts 
Calendar Data 
Calendar Conversions 

COMMON 
Access 

Saved and Restored 
Section Pointers 

Data Array 

Non-Standard Long Form 
Short Calendar Form 
Short Linear Form 
Standard Long Form 

Data Curve 

Data Limits 

Data Window 

Density Factor 

Default Values 

Exponent Type 

Frame 

Global Table 

Grid Lines 

Infinity 

Initialization 

Labels 

Frequency 
Width 

Line Type 

Logarithmic Plots 

Multiple Axes 

Multiple Curves 

Multiple Windows 

Neat Tic Mark Intervals 

Notations 

Number Conversions 

Plot Table 
Point Plot 
Raster Units 
Remote Exponent 
Scatter Plots 
Screen Coordinates 



3-28 

2-20 

2-3,2-18 

4-24, 4-25, 4-26 

4-27, 4-28 

2-1,3-1,3-2 

4-29, 4-36 

4-4, 4-5 

4-29, 4-33, 4-37 

4-38, 4-39, 4-40 

2-3,2-4,3-16 

2-3, 2-4 

2-3, 2-4 

1-2,2-3,2-4 

2-2 

3-48 

2-1 

3-34, 3-35/36, 3-37 

2-1 

3-62 

2-27, 2-30 

2-1 

3-42, 3-44, 3-45 

3-15 

1-2 

3-25,3-31,3-33 

3-60 

3-58 

3-6 

2-17, 3-55 

2-13,4-6 

1-4,2-10,2-13 

2-23 

3-24 

2-25,2-31,2-33 

4-18,4-19,4-20 

4-21,4-22,4-23 

2-1,3-1,3-2 

3-6 

2-22 

2-1, 3-60, 3-62 

3-12 

2-22 



4010A02 USER 



1-3 



Screen Window Location 3-50, 4-14 

Shading 4-10 

Suppression 3-32 

Label 3-32 

Tic IVIark 3-42, 3-45 

Zero 3-26 

Staggered Labels 3-61 

Stepped Data Points 3-18 

Symbols 1-6,3-9 

Size 3-20 

Stepped 3-13 

Termination 1-3 

Tic Mark Form 3-42, 3-45 

Tic Mark Intervals 3-44 

Tic Mark Labels 3-32, 4-2, 4-5 

Tic Marks, Major and Minor 2-1 

Titles 2-25,2-31,2-33 

Transformation Types 3-55 

Universal Business Graphing Calendar 4-24 

Zero Suppression 3-26 



1-4 



4010A02 USER